// Copyright (c) 2010, SMB SAAS Systems Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// - Redistributions of source code must  retain  the  above copyright notice, this
//   list of conditions and the following disclaimer.
//
// - Redistributions in binary form  must  reproduce the  above  copyright  notice,
//   this list of conditions  and  the  following  disclaimer in  the documentation
//   and/or other materials provided with the distribution.
//
// - Neither  the  name  of  the  SMB SAAS Systems Inc.  nor   the   names  of  its
//   contributors may be used to endorse or  promote  products  derived  from  this
//   software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,  BUT  NOT  LIMITED TO, THE IMPLIED
// WARRANTIES  OF  MERCHANTABILITY   AND  FITNESS  FOR  A  PARTICULAR  PURPOSE  ARE
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
// ANY DIRECT, INDIRECT, INCIDENTAL,  SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL DAMAGES
// (INCLUDING, BUT NOT LIMITED TO,  PROCUREMENT  OF  SUBSTITUTE  GOODS OR SERVICES;
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)  HOWEVER  CAUSED AND ON
// ANY  THEORY  OF  LIABILITY,  WHETHER  IN  CONTRACT,  STRICT  LIABILITY,  OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE)  ARISING  IN  ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:2.0.50727.3053
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

// 
// This source code was auto-generated by wsdl, Version=2.0.50727.3038.
// 
namespace dotPanel.Ecommerce.EnterpriseServer {
    using System.Diagnostics;
    using System.Web.Services;
    using System.ComponentModel;
    using System.Web.Services.Protocols;
    using System;
    using System.Xml.Serialization;
    using System.Data;
    
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Web.Services.WebServiceBindingAttribute(Name="ecStorehouseSoap", Namespace="http://tempuri.org/")]
    public partial class ecStorehouse : Microsoft.Web.Services3.WebServicesClientProtocol {
        
        private System.Threading.SendOrPostCallback GetCategoriesCountOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetWholeCategoriesSetOperationCompleted;
        
        private System.Threading.SendOrPostCallback CheckCustomerContractExistsOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetCustomerContractOperationCompleted;
        
        private System.Threading.SendOrPostCallback AddBillingCycleOperationCompleted;
        
        private System.Threading.SendOrPostCallback UpdateBillingCycleOperationCompleted;
        
        private System.Threading.SendOrPostCallback DeleteBillingCycleOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetBillingCycleOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetBillingCyclesCountOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetBillingCyclesPagedOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetBillingCyclesFreeOperationCompleted;
        
        private System.Threading.SendOrPostCallback AddHostingPlanOperationCompleted;
        
        private System.Threading.SendOrPostCallback AddTopLevelDomainOperationCompleted;
        
        private System.Threading.SendOrPostCallback AddHostingAddonOperationCompleted;
        
        private System.Threading.SendOrPostCallback UpdateHostingPlanOperationCompleted;
        
        private System.Threading.SendOrPostCallback UpdateHostingAddonOperationCompleted;
        
        private System.Threading.SendOrPostCallback UpdateTopLevelDomainOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetProductsCountByTypeOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetProductsPagedByTypeOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetHostingPlansTakenOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetHostingAddonsTakenOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetHostingPlanOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetHostingAddonOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetHostingPlanCyclesOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetHostingAddonCyclesOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetProductHighlightsOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetProductCategoriesOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetProductCategoriesIdsOperationCompleted;
        
        private System.Threading.SendOrPostCallback DeleteProductOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetAddonProductsOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetAddonProductsIdsOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetProductsByTypeOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetTopLevelDomainsPagedOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetTopLevelDomainOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetTopLevelDomainCyclesOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetSupportedPluginsByGroupOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetPaymentMethodOperationCompleted;
        
        private System.Threading.SendOrPostCallback SetPaymentProfileOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetPaymentProfileOperationCompleted;
        
        private System.Threading.SendOrPostCallback DeletePaymentProfileOperationCompleted;
        
        private System.Threading.SendOrPostCallback PaymentProfileExistsOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetPluginPropertiesOperationCompleted;
        
        private System.Threading.SendOrPostCallback SetPluginPropertiesOperationCompleted;
        
        private System.Threading.SendOrPostCallback SetPaymentMethodOperationCompleted;
        
        private System.Threading.SendOrPostCallback DeletePaymentMethodOperationCompleted;
        
        private System.Threading.SendOrPostCallback AddTaxationOperationCompleted;
        
        private System.Threading.SendOrPostCallback UpdateTaxationOperationCompleted;
        
        private System.Threading.SendOrPostCallback DeleteTaxationOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetTaxationOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetTaxationsCountOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetTaxationsPagedOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetStoreSettingsOperationCompleted;
        
        private System.Threading.SendOrPostCallback SetStoreSettingsOperationCompleted;
        
        private System.Threading.SendOrPostCallback SetInvoiceNotificationOperationCompleted;
        
        private System.Threading.SendOrPostCallback SetPaymentReceivedNotificationOperationCompleted;
        
        private System.Threading.SendOrPostCallback SetServiceActivatedNotificationOperationCompleted;
        
        private System.Threading.SendOrPostCallback SetServiceCancelledNotificationOperationCompleted;
        
        private System.Threading.SendOrPostCallback SetServiceSuspendedNotificationOperationCompleted;
        
        private System.Threading.SendOrPostCallback IsSupportedPluginActiveOperationCompleted;
        
        private System.Threading.SendOrPostCallback IsInvoiceProcessedOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetCustomersPaymentsCountOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetCustomersPaymentsPagedOperationCompleted;
        
        private System.Threading.SendOrPostCallback DeleteCustomerPaymentOperationCompleted;
        
        private System.Threading.SendOrPostCallback ChangeCustomerPaymentStatusOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetCustomersInvoicesCountOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetCustomersInvoicesPagedOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetCustomerInvoiceFormattedOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetCustomerInvoiceOperationCompleted;
        
        private System.Threading.SendOrPostCallback AddCustomerPaymentOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetCustomersServicesCountOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetCustomersServicesPagedOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetHostingPackageServiceOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetHostingAddonServiceOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetDomainNameServiceOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetRawCustomerServiceOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetServiceHistoryOperationCompleted;
        
        private System.Threading.SendOrPostCallback ActivateServiceOperationCompleted;
        
        private System.Threading.SendOrPostCallback SuspendServiceOperationCompleted;
        
        private System.Threading.SendOrPostCallback CancelServiceOperationCompleted;
        
        private System.Threading.SendOrPostCallback VoidCustomerInvoiceOperationCompleted;
        
        private System.Threading.SendOrPostCallback ActivateInvoiceOperationCompleted;
        
        private System.Threading.SendOrPostCallback DeleteCustomerServiceOperationCompleted;
        
        private System.Threading.SendOrPostCallback AddCategoryOperationCompleted;
        
        private System.Threading.SendOrPostCallback UpdateCategoryOperationCompleted;
        
        private System.Threading.SendOrPostCallback DeleteCategoryOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetCategoryOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetCategoriesPagedOperationCompleted;
        
        /// <remarks/>
        public ecStorehouse() {
            this.Url = "http://localhost:1625/ecStorehouse.asmx";
        }
        
        /// <remarks/>
        public event GetCategoriesCountCompletedEventHandler GetCategoriesCountCompleted;
        
        /// <remarks/>
        public event GetWholeCategoriesSetCompletedEventHandler GetWholeCategoriesSetCompleted;
        
        /// <remarks/>
        public event CheckCustomerContractExistsCompletedEventHandler CheckCustomerContractExistsCompleted;
        
        /// <remarks/>
        public event GetCustomerContractCompletedEventHandler GetCustomerContractCompleted;
        
        /// <remarks/>
        public event AddBillingCycleCompletedEventHandler AddBillingCycleCompleted;
        
        /// <remarks/>
        public event UpdateBillingCycleCompletedEventHandler UpdateBillingCycleCompleted;
        
        /// <remarks/>
        public event DeleteBillingCycleCompletedEventHandler DeleteBillingCycleCompleted;
        
        /// <remarks/>
        public event GetBillingCycleCompletedEventHandler GetBillingCycleCompleted;
        
        /// <remarks/>
        public event GetBillingCyclesCountCompletedEventHandler GetBillingCyclesCountCompleted;
        
        /// <remarks/>
        public event GetBillingCyclesPagedCompletedEventHandler GetBillingCyclesPagedCompleted;
        
        /// <remarks/>
        public event GetBillingCyclesFreeCompletedEventHandler GetBillingCyclesFreeCompleted;
        
        /// <remarks/>
        public event AddHostingPlanCompletedEventHandler AddHostingPlanCompleted;
        
        /// <remarks/>
        public event AddTopLevelDomainCompletedEventHandler AddTopLevelDomainCompleted;
        
        /// <remarks/>
        public event AddHostingAddonCompletedEventHandler AddHostingAddonCompleted;
        
        /// <remarks/>
        public event UpdateHostingPlanCompletedEventHandler UpdateHostingPlanCompleted;
        
        /// <remarks/>
        public event UpdateHostingAddonCompletedEventHandler UpdateHostingAddonCompleted;
        
        /// <remarks/>
        public event UpdateTopLevelDomainCompletedEventHandler UpdateTopLevelDomainCompleted;
        
        /// <remarks/>
        public event GetProductsCountByTypeCompletedEventHandler GetProductsCountByTypeCompleted;
        
        /// <remarks/>
        public event GetProductsPagedByTypeCompletedEventHandler GetProductsPagedByTypeCompleted;
        
        /// <remarks/>
        public event GetHostingPlansTakenCompletedEventHandler GetHostingPlansTakenCompleted;
        
        /// <remarks/>
        public event GetHostingAddonsTakenCompletedEventHandler GetHostingAddonsTakenCompleted;
        
        /// <remarks/>
        public event GetHostingPlanCompletedEventHandler GetHostingPlanCompleted;
        
        /// <remarks/>
        public event GetHostingAddonCompletedEventHandler GetHostingAddonCompleted;
        
        /// <remarks/>
        public event GetHostingPlanCyclesCompletedEventHandler GetHostingPlanCyclesCompleted;
        
        /// <remarks/>
        public event GetHostingAddonCyclesCompletedEventHandler GetHostingAddonCyclesCompleted;
        
        /// <remarks/>
        public event GetProductHighlightsCompletedEventHandler GetProductHighlightsCompleted;
        
        /// <remarks/>
        public event GetProductCategoriesCompletedEventHandler GetProductCategoriesCompleted;
        
        /// <remarks/>
        public event GetProductCategoriesIdsCompletedEventHandler GetProductCategoriesIdsCompleted;
        
        /// <remarks/>
        public event DeleteProductCompletedEventHandler DeleteProductCompleted;
        
        /// <remarks/>
        public event GetAddonProductsCompletedEventHandler GetAddonProductsCompleted;
        
        /// <remarks/>
        public event GetAddonProductsIdsCompletedEventHandler GetAddonProductsIdsCompleted;
        
        /// <remarks/>
        public event GetProductsByTypeCompletedEventHandler GetProductsByTypeCompleted;
        
        /// <remarks/>
        public event GetTopLevelDomainsPagedCompletedEventHandler GetTopLevelDomainsPagedCompleted;
        
        /// <remarks/>
        public event GetTopLevelDomainCompletedEventHandler GetTopLevelDomainCompleted;
        
        /// <remarks/>
        public event GetTopLevelDomainCyclesCompletedEventHandler GetTopLevelDomainCyclesCompleted;
        
        /// <remarks/>
        public event GetSupportedPluginsByGroupCompletedEventHandler GetSupportedPluginsByGroupCompleted;
        
        /// <remarks/>
        public event GetPaymentMethodCompletedEventHandler GetPaymentMethodCompleted;
        
        /// <remarks/>
        public event SetPaymentProfileCompletedEventHandler SetPaymentProfileCompleted;
        
        /// <remarks/>
        public event GetPaymentProfileCompletedEventHandler GetPaymentProfileCompleted;
        
        /// <remarks/>
        public event DeletePaymentProfileCompletedEventHandler DeletePaymentProfileCompleted;
        
        /// <remarks/>
        public event PaymentProfileExistsCompletedEventHandler PaymentProfileExistsCompleted;
        
        /// <remarks/>
        public event GetPluginPropertiesCompletedEventHandler GetPluginPropertiesCompleted;
        
        /// <remarks/>
        public event SetPluginPropertiesCompletedEventHandler SetPluginPropertiesCompleted;
        
        /// <remarks/>
        public event SetPaymentMethodCompletedEventHandler SetPaymentMethodCompleted;
        
        /// <remarks/>
        public event DeletePaymentMethodCompletedEventHandler DeletePaymentMethodCompleted;
        
        /// <remarks/>
        public event AddTaxationCompletedEventHandler AddTaxationCompleted;
        
        /// <remarks/>
        public event UpdateTaxationCompletedEventHandler UpdateTaxationCompleted;
        
        /// <remarks/>
        public event DeleteTaxationCompletedEventHandler DeleteTaxationCompleted;
        
        /// <remarks/>
        public event GetTaxationCompletedEventHandler GetTaxationCompleted;
        
        /// <remarks/>
        public event GetTaxationsCountCompletedEventHandler GetTaxationsCountCompleted;
        
        /// <remarks/>
        public event GetTaxationsPagedCompletedEventHandler GetTaxationsPagedCompleted;
        
        /// <remarks/>
        public event GetStoreSettingsCompletedEventHandler GetStoreSettingsCompleted;
        
        /// <remarks/>
        public event SetStoreSettingsCompletedEventHandler SetStoreSettingsCompleted;
        
        /// <remarks/>
        public event SetInvoiceNotificationCompletedEventHandler SetInvoiceNotificationCompleted;
        
        /// <remarks/>
        public event SetPaymentReceivedNotificationCompletedEventHandler SetPaymentReceivedNotificationCompleted;
        
        /// <remarks/>
        public event SetServiceActivatedNotificationCompletedEventHandler SetServiceActivatedNotificationCompleted;
        
        /// <remarks/>
        public event SetServiceCancelledNotificationCompletedEventHandler SetServiceCancelledNotificationCompleted;
        
        /// <remarks/>
        public event SetServiceSuspendedNotificationCompletedEventHandler SetServiceSuspendedNotificationCompleted;
        
        /// <remarks/>
        public event IsSupportedPluginActiveCompletedEventHandler IsSupportedPluginActiveCompleted;
        
        /// <remarks/>
        public event IsInvoiceProcessedCompletedEventHandler IsInvoiceProcessedCompleted;
        
        /// <remarks/>
        public event GetCustomersPaymentsCountCompletedEventHandler GetCustomersPaymentsCountCompleted;
        
        /// <remarks/>
        public event GetCustomersPaymentsPagedCompletedEventHandler GetCustomersPaymentsPagedCompleted;
        
        /// <remarks/>
        public event DeleteCustomerPaymentCompletedEventHandler DeleteCustomerPaymentCompleted;
        
        /// <remarks/>
        public event ChangeCustomerPaymentStatusCompletedEventHandler ChangeCustomerPaymentStatusCompleted;
        
        /// <remarks/>
        public event GetCustomersInvoicesCountCompletedEventHandler GetCustomersInvoicesCountCompleted;
        
        /// <remarks/>
        public event GetCustomersInvoicesPagedCompletedEventHandler GetCustomersInvoicesPagedCompleted;
        
        /// <remarks/>
        public event GetCustomerInvoiceFormattedCompletedEventHandler GetCustomerInvoiceFormattedCompleted;
        
        /// <remarks/>
        public event GetCustomerInvoiceCompletedEventHandler GetCustomerInvoiceCompleted;
        
        /// <remarks/>
        public event AddCustomerPaymentCompletedEventHandler AddCustomerPaymentCompleted;
        
        /// <remarks/>
        public event GetCustomersServicesCountCompletedEventHandler GetCustomersServicesCountCompleted;
        
        /// <remarks/>
        public event GetCustomersServicesPagedCompletedEventHandler GetCustomersServicesPagedCompleted;
        
        /// <remarks/>
        public event GetHostingPackageServiceCompletedEventHandler GetHostingPackageServiceCompleted;
        
        /// <remarks/>
        public event GetHostingAddonServiceCompletedEventHandler GetHostingAddonServiceCompleted;
        
        /// <remarks/>
        public event GetDomainNameServiceCompletedEventHandler GetDomainNameServiceCompleted;
        
        /// <remarks/>
        public event GetRawCustomerServiceCompletedEventHandler GetRawCustomerServiceCompleted;
        
        /// <remarks/>
        public event GetServiceHistoryCompletedEventHandler GetServiceHistoryCompleted;
        
        /// <remarks/>
        public event ActivateServiceCompletedEventHandler ActivateServiceCompleted;
        
        /// <remarks/>
        public event SuspendServiceCompletedEventHandler SuspendServiceCompleted;
        
        /// <remarks/>
        public event CancelServiceCompletedEventHandler CancelServiceCompleted;
        
        /// <remarks/>
        public event VoidCustomerInvoiceCompletedEventHandler VoidCustomerInvoiceCompleted;
        
        /// <remarks/>
        public event ActivateInvoiceCompletedEventHandler ActivateInvoiceCompleted;
        
        /// <remarks/>
        public event DeleteCustomerServiceCompletedEventHandler DeleteCustomerServiceCompleted;
        
        /// <remarks/>
        public event AddCategoryCompletedEventHandler AddCategoryCompleted;
        
        /// <remarks/>
        public event UpdateCategoryCompletedEventHandler UpdateCategoryCompleted;
        
        /// <remarks/>
        public event DeleteCategoryCompletedEventHandler DeleteCategoryCompleted;
        
        /// <remarks/>
        public event GetCategoryCompletedEventHandler GetCategoryCompleted;
        
        /// <remarks/>
        public event GetCategoriesPagedCompletedEventHandler GetCategoriesPagedCompleted;
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetCategoriesCount", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int GetCategoriesCount(int userId, int parentId) {
            object[] results = this.Invoke("GetCategoriesCount", new object[] {
                        userId,
                        parentId});
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetCategoriesCount(int userId, int parentId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetCategoriesCount", new object[] {
                        userId,
                        parentId}, callback, asyncState);
        }
        
        /// <remarks/>
        public int EndGetCategoriesCount(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void GetCategoriesCountAsync(int userId, int parentId) {
            this.GetCategoriesCountAsync(userId, parentId, null);
        }
        
        /// <remarks/>
        public void GetCategoriesCountAsync(int userId, int parentId, object userState) {
            if ((this.GetCategoriesCountOperationCompleted == null)) {
                this.GetCategoriesCountOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetCategoriesCountOperationCompleted);
            }
            this.InvokeAsync("GetCategoriesCount", new object[] {
                        userId,
                        parentId}, this.GetCategoriesCountOperationCompleted, userState);
        }
        
        private void OnGetCategoriesCountOperationCompleted(object arg) {
            if ((this.GetCategoriesCountCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetCategoriesCountCompleted(this, new GetCategoriesCountCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetWholeCategoriesSet", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public System.Data.DataSet GetWholeCategoriesSet(int userId) {
            object[] results = this.Invoke("GetWholeCategoriesSet", new object[] {
                        userId});
            return ((System.Data.DataSet)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetWholeCategoriesSet(int userId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetWholeCategoriesSet", new object[] {
                        userId}, callback, asyncState);
        }
        
        /// <remarks/>
        public System.Data.DataSet EndGetWholeCategoriesSet(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((System.Data.DataSet)(results[0]));
        }
        
        /// <remarks/>
        public void GetWholeCategoriesSetAsync(int userId) {
            this.GetWholeCategoriesSetAsync(userId, null);
        }
        
        /// <remarks/>
        public void GetWholeCategoriesSetAsync(int userId, object userState) {
            if ((this.GetWholeCategoriesSetOperationCompleted == null)) {
                this.GetWholeCategoriesSetOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetWholeCategoriesSetOperationCompleted);
            }
            this.InvokeAsync("GetWholeCategoriesSet", new object[] {
                        userId}, this.GetWholeCategoriesSetOperationCompleted, userState);
        }
        
        private void OnGetWholeCategoriesSetOperationCompleted(object arg) {
            if ((this.GetWholeCategoriesSetCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetWholeCategoriesSetCompleted(this, new GetWholeCategoriesSetCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/CheckCustomerContractExists", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public bool CheckCustomerContractExists() {
            object[] results = this.Invoke("CheckCustomerContractExists", new object[0]);
            return ((bool)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginCheckCustomerContractExists(System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("CheckCustomerContractExists", new object[0], callback, asyncState);
        }
        
        /// <remarks/>
        public bool EndCheckCustomerContractExists(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((bool)(results[0]));
        }
        
        /// <remarks/>
        public void CheckCustomerContractExistsAsync() {
            this.CheckCustomerContractExistsAsync(null);
        }
        
        /// <remarks/>
        public void CheckCustomerContractExistsAsync(object userState) {
            if ((this.CheckCustomerContractExistsOperationCompleted == null)) {
                this.CheckCustomerContractExistsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCheckCustomerContractExistsOperationCompleted);
            }
            this.InvokeAsync("CheckCustomerContractExists", new object[0], this.CheckCustomerContractExistsOperationCompleted, userState);
        }
        
        private void OnCheckCustomerContractExistsOperationCompleted(object arg) {
            if ((this.CheckCustomerContractExistsCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.CheckCustomerContractExistsCompleted(this, new CheckCustomerContractExistsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetCustomerContract", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public Contract GetCustomerContract(int customerId) {
            object[] results = this.Invoke("GetCustomerContract", new object[] {
                        customerId});
            return ((Contract)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetCustomerContract(int customerId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetCustomerContract", new object[] {
                        customerId}, callback, asyncState);
        }
        
        /// <remarks/>
        public Contract EndGetCustomerContract(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((Contract)(results[0]));
        }
        
        /// <remarks/>
        public void GetCustomerContractAsync(int customerId) {
            this.GetCustomerContractAsync(customerId, null);
        }
        
        /// <remarks/>
        public void GetCustomerContractAsync(int customerId, object userState) {
            if ((this.GetCustomerContractOperationCompleted == null)) {
                this.GetCustomerContractOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetCustomerContractOperationCompleted);
            }
            this.InvokeAsync("GetCustomerContract", new object[] {
                        customerId}, this.GetCustomerContractOperationCompleted, userState);
        }
        
        private void OnGetCustomerContractOperationCompleted(object arg) {
            if ((this.GetCustomerContractCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetCustomerContractCompleted(this, new GetCustomerContractCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/AddBillingCycle", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int AddBillingCycle(int userId, string cycleName, string billingPeriod, int periodLength) {
            object[] results = this.Invoke("AddBillingCycle", new object[] {
                        userId,
                        cycleName,
                        billingPeriod,
                        periodLength});
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginAddBillingCycle(int userId, string cycleName, string billingPeriod, int periodLength, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("AddBillingCycle", new object[] {
                        userId,
                        cycleName,
                        billingPeriod,
                        periodLength}, callback, asyncState);
        }
        
        /// <remarks/>
        public int EndAddBillingCycle(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void AddBillingCycleAsync(int userId, string cycleName, string billingPeriod, int periodLength) {
            this.AddBillingCycleAsync(userId, cycleName, billingPeriod, periodLength, null);
        }
        
        /// <remarks/>
        public void AddBillingCycleAsync(int userId, string cycleName, string billingPeriod, int periodLength, object userState) {
            if ((this.AddBillingCycleOperationCompleted == null)) {
                this.AddBillingCycleOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddBillingCycleOperationCompleted);
            }
            this.InvokeAsync("AddBillingCycle", new object[] {
                        userId,
                        cycleName,
                        billingPeriod,
                        periodLength}, this.AddBillingCycleOperationCompleted, userState);
        }
        
        private void OnAddBillingCycleOperationCompleted(object arg) {
            if ((this.AddBillingCycleCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.AddBillingCycleCompleted(this, new AddBillingCycleCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/UpdateBillingCycle", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int UpdateBillingCycle(int userId, int cycleId, string cycleName, string billingPeriod, int periodLength) {
            object[] results = this.Invoke("UpdateBillingCycle", new object[] {
                        userId,
                        cycleId,
                        cycleName,
                        billingPeriod,
                        periodLength});
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginUpdateBillingCycle(int userId, int cycleId, string cycleName, string billingPeriod, int periodLength, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("UpdateBillingCycle", new object[] {
                        userId,
                        cycleId,
                        cycleName,
                        billingPeriod,
                        periodLength}, callback, asyncState);
        }
        
        /// <remarks/>
        public int EndUpdateBillingCycle(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void UpdateBillingCycleAsync(int userId, int cycleId, string cycleName, string billingPeriod, int periodLength) {
            this.UpdateBillingCycleAsync(userId, cycleId, cycleName, billingPeriod, periodLength, null);
        }
        
        /// <remarks/>
        public void UpdateBillingCycleAsync(int userId, int cycleId, string cycleName, string billingPeriod, int periodLength, object userState) {
            if ((this.UpdateBillingCycleOperationCompleted == null)) {
                this.UpdateBillingCycleOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateBillingCycleOperationCompleted);
            }
            this.InvokeAsync("UpdateBillingCycle", new object[] {
                        userId,
                        cycleId,
                        cycleName,
                        billingPeriod,
                        periodLength}, this.UpdateBillingCycleOperationCompleted, userState);
        }
        
        private void OnUpdateBillingCycleOperationCompleted(object arg) {
            if ((this.UpdateBillingCycleCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.UpdateBillingCycleCompleted(this, new UpdateBillingCycleCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/DeleteBillingCycle", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int DeleteBillingCycle(int userId, int cycleId) {
            object[] results = this.Invoke("DeleteBillingCycle", new object[] {
                        userId,
                        cycleId});
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginDeleteBillingCycle(int userId, int cycleId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("DeleteBillingCycle", new object[] {
                        userId,
                        cycleId}, callback, asyncState);
        }
        
        /// <remarks/>
        public int EndDeleteBillingCycle(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void DeleteBillingCycleAsync(int userId, int cycleId) {
            this.DeleteBillingCycleAsync(userId, cycleId, null);
        }
        
        /// <remarks/>
        public void DeleteBillingCycleAsync(int userId, int cycleId, object userState) {
            if ((this.DeleteBillingCycleOperationCompleted == null)) {
                this.DeleteBillingCycleOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteBillingCycleOperationCompleted);
            }
            this.InvokeAsync("DeleteBillingCycle", new object[] {
                        userId,
                        cycleId}, this.DeleteBillingCycleOperationCompleted, userState);
        }
        
        private void OnDeleteBillingCycleOperationCompleted(object arg) {
            if ((this.DeleteBillingCycleCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.DeleteBillingCycleCompleted(this, new DeleteBillingCycleCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetBillingCycle", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public BillingCycle GetBillingCycle(int userId, int cycleId) {
            object[] results = this.Invoke("GetBillingCycle", new object[] {
                        userId,
                        cycleId});
            return ((BillingCycle)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetBillingCycle(int userId, int cycleId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetBillingCycle", new object[] {
                        userId,
                        cycleId}, callback, asyncState);
        }
        
        /// <remarks/>
        public BillingCycle EndGetBillingCycle(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((BillingCycle)(results[0]));
        }
        
        /// <remarks/>
        public void GetBillingCycleAsync(int userId, int cycleId) {
            this.GetBillingCycleAsync(userId, cycleId, null);
        }
        
        /// <remarks/>
        public void GetBillingCycleAsync(int userId, int cycleId, object userState) {
            if ((this.GetBillingCycleOperationCompleted == null)) {
                this.GetBillingCycleOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetBillingCycleOperationCompleted);
            }
            this.InvokeAsync("GetBillingCycle", new object[] {
                        userId,
                        cycleId}, this.GetBillingCycleOperationCompleted, userState);
        }
        
        private void OnGetBillingCycleOperationCompleted(object arg) {
            if ((this.GetBillingCycleCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetBillingCycleCompleted(this, new GetBillingCycleCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetBillingCyclesCount", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int GetBillingCyclesCount(int userId) {
            object[] results = this.Invoke("GetBillingCyclesCount", new object[] {
                        userId});
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetBillingCyclesCount(int userId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetBillingCyclesCount", new object[] {
                        userId}, callback, asyncState);
        }
        
        /// <remarks/>
        public int EndGetBillingCyclesCount(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void GetBillingCyclesCountAsync(int userId) {
            this.GetBillingCyclesCountAsync(userId, null);
        }
        
        /// <remarks/>
        public void GetBillingCyclesCountAsync(int userId, object userState) {
            if ((this.GetBillingCyclesCountOperationCompleted == null)) {
                this.GetBillingCyclesCountOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetBillingCyclesCountOperationCompleted);
            }
            this.InvokeAsync("GetBillingCyclesCount", new object[] {
                        userId}, this.GetBillingCyclesCountOperationCompleted, userState);
        }
        
        private void OnGetBillingCyclesCountOperationCompleted(object arg) {
            if ((this.GetBillingCyclesCountCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetBillingCyclesCountCompleted(this, new GetBillingCyclesCountCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetBillingCyclesPaged", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public BillingCycle[] GetBillingCyclesPaged(int userId, int maximumRows, int startRowIndex) {
            object[] results = this.Invoke("GetBillingCyclesPaged", new object[] {
                        userId,
                        maximumRows,
                        startRowIndex});
            return ((BillingCycle[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetBillingCyclesPaged(int userId, int maximumRows, int startRowIndex, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetBillingCyclesPaged", new object[] {
                        userId,
                        maximumRows,
                        startRowIndex}, callback, asyncState);
        }
        
        /// <remarks/>
        public BillingCycle[] EndGetBillingCyclesPaged(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((BillingCycle[])(results[0]));
        }
        
        /// <remarks/>
        public void GetBillingCyclesPagedAsync(int userId, int maximumRows, int startRowIndex) {
            this.GetBillingCyclesPagedAsync(userId, maximumRows, startRowIndex, null);
        }
        
        /// <remarks/>
        public void GetBillingCyclesPagedAsync(int userId, int maximumRows, int startRowIndex, object userState) {
            if ((this.GetBillingCyclesPagedOperationCompleted == null)) {
                this.GetBillingCyclesPagedOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetBillingCyclesPagedOperationCompleted);
            }
            this.InvokeAsync("GetBillingCyclesPaged", new object[] {
                        userId,
                        maximumRows,
                        startRowIndex}, this.GetBillingCyclesPagedOperationCompleted, userState);
        }
        
        private void OnGetBillingCyclesPagedOperationCompleted(object arg) {
            if ((this.GetBillingCyclesPagedCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetBillingCyclesPagedCompleted(this, new GetBillingCyclesPagedCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetBillingCyclesFree", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public BillingCycle[] GetBillingCyclesFree(int userId, int[] cyclesTaken) {
            object[] results = this.Invoke("GetBillingCyclesFree", new object[] {
                        userId,
                        cyclesTaken});
            return ((BillingCycle[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetBillingCyclesFree(int userId, int[] cyclesTaken, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetBillingCyclesFree", new object[] {
                        userId,
                        cyclesTaken}, callback, asyncState);
        }
        
        /// <remarks/>
        public BillingCycle[] EndGetBillingCyclesFree(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((BillingCycle[])(results[0]));
        }
        
        /// <remarks/>
        public void GetBillingCyclesFreeAsync(int userId, int[] cyclesTaken) {
            this.GetBillingCyclesFreeAsync(userId, cyclesTaken, null);
        }
        
        /// <remarks/>
        public void GetBillingCyclesFreeAsync(int userId, int[] cyclesTaken, object userState) {
            if ((this.GetBillingCyclesFreeOperationCompleted == null)) {
                this.GetBillingCyclesFreeOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetBillingCyclesFreeOperationCompleted);
            }
            this.InvokeAsync("GetBillingCyclesFree", new object[] {
                        userId,
                        cyclesTaken}, this.GetBillingCyclesFreeOperationCompleted, userState);
        }
        
        private void OnGetBillingCyclesFreeOperationCompleted(object arg) {
            if ((this.GetBillingCyclesFreeCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetBillingCyclesFreeCompleted(this, new GetBillingCyclesFreeCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/AddHostingPlan", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int AddHostingPlan(int userId, string planName, string productSku, bool taxInclusive, int planId, int userRole, int initialStatus, int domainOption, bool enabled, string planDescription, HostingPlanCycle[] planCycles, string[] planHighlights, int[] planCategories) {
            object[] results = this.Invoke("AddHostingPlan", new object[] {
                        userId,
                        planName,
                        productSku,
                        taxInclusive,
                        planId,
                        userRole,
                        initialStatus,
                        domainOption,
                        enabled,
                        planDescription,
                        planCycles,
                        planHighlights,
                        planCategories});
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginAddHostingPlan(int userId, string planName, string productSku, bool taxInclusive, int planId, int userRole, int initialStatus, int domainOption, bool enabled, string planDescription, HostingPlanCycle[] planCycles, string[] planHighlights, int[] planCategories, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("AddHostingPlan", new object[] {
                        userId,
                        planName,
                        productSku,
                        taxInclusive,
                        planId,
                        userRole,
                        initialStatus,
                        domainOption,
                        enabled,
                        planDescription,
                        planCycles,
                        planHighlights,
                        planCategories}, callback, asyncState);
        }
        
        /// <remarks/>
        public int EndAddHostingPlan(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void AddHostingPlanAsync(int userId, string planName, string productSku, bool taxInclusive, int planId, int userRole, int initialStatus, int domainOption, bool enabled, string planDescription, HostingPlanCycle[] planCycles, string[] planHighlights, int[] planCategories) {
            this.AddHostingPlanAsync(userId, planName, productSku, taxInclusive, planId, userRole, initialStatus, domainOption, enabled, planDescription, planCycles, planHighlights, planCategories, null);
        }
        
        /// <remarks/>
        public void AddHostingPlanAsync(int userId, string planName, string productSku, bool taxInclusive, int planId, int userRole, int initialStatus, int domainOption, bool enabled, string planDescription, HostingPlanCycle[] planCycles, string[] planHighlights, int[] planCategories, object userState) {
            if ((this.AddHostingPlanOperationCompleted == null)) {
                this.AddHostingPlanOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddHostingPlanOperationCompleted);
            }
            this.InvokeAsync("AddHostingPlan", new object[] {
                        userId,
                        planName,
                        productSku,
                        taxInclusive,
                        planId,
                        userRole,
                        initialStatus,
                        domainOption,
                        enabled,
                        planDescription,
                        planCycles,
                        planHighlights,
                        planCategories}, this.AddHostingPlanOperationCompleted, userState);
        }
        
        private void OnAddHostingPlanOperationCompleted(object arg) {
            if ((this.AddHostingPlanCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.AddHostingPlanCompleted(this, new AddHostingPlanCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/AddTopLevelDomain", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int AddTopLevelDomain(int userId, string topLevelDomain, string productSku, bool taxInclusive, int pluginId, bool enabled, bool whoisEnabled, DomainNameCycle[] domainCycles) {
            object[] results = this.Invoke("AddTopLevelDomain", new object[] {
                        userId,
                        topLevelDomain,
                        productSku,
                        taxInclusive,
                        pluginId,
                        enabled,
                        whoisEnabled,
                        domainCycles});
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginAddTopLevelDomain(int userId, string topLevelDomain, string productSku, bool taxInclusive, int pluginId, bool enabled, bool whoisEnabled, DomainNameCycle[] domainCycles, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("AddTopLevelDomain", new object[] {
                        userId,
                        topLevelDomain,
                        productSku,
                        taxInclusive,
                        pluginId,
                        enabled,
                        whoisEnabled,
                        domainCycles}, callback, asyncState);
        }
        
        /// <remarks/>
        public int EndAddTopLevelDomain(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void AddTopLevelDomainAsync(int userId, string topLevelDomain, string productSku, bool taxInclusive, int pluginId, bool enabled, bool whoisEnabled, DomainNameCycle[] domainCycles) {
            this.AddTopLevelDomainAsync(userId, topLevelDomain, productSku, taxInclusive, pluginId, enabled, whoisEnabled, domainCycles, null);
        }
        
        /// <remarks/>
        public void AddTopLevelDomainAsync(int userId, string topLevelDomain, string productSku, bool taxInclusive, int pluginId, bool enabled, bool whoisEnabled, DomainNameCycle[] domainCycles, object userState) {
            if ((this.AddTopLevelDomainOperationCompleted == null)) {
                this.AddTopLevelDomainOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddTopLevelDomainOperationCompleted);
            }
            this.InvokeAsync("AddTopLevelDomain", new object[] {
                        userId,
                        topLevelDomain,
                        productSku,
                        taxInclusive,
                        pluginId,
                        enabled,
                        whoisEnabled,
                        domainCycles}, this.AddTopLevelDomainOperationCompleted, userState);
        }
        
        private void OnAddTopLevelDomainOperationCompleted(object arg) {
            if ((this.AddTopLevelDomainCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.AddTopLevelDomainCompleted(this, new AddTopLevelDomainCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/AddHostingAddon", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int AddHostingAddon(int userId, string addonName, string productSku, bool taxInclusive, int planId, bool recurring, bool dummyAddon, bool countable, bool enabled, string description, HostingPlanCycle[] addonCycles, int[] addonProducts) {
            object[] results = this.Invoke("AddHostingAddon", new object[] {
                        userId,
                        addonName,
                        productSku,
                        taxInclusive,
                        planId,
                        recurring,
                        dummyAddon,
                        countable,
                        enabled,
                        description,
                        addonCycles,
                        addonProducts});
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginAddHostingAddon(int userId, string addonName, string productSku, bool taxInclusive, int planId, bool recurring, bool dummyAddon, bool countable, bool enabled, string description, HostingPlanCycle[] addonCycles, int[] addonProducts, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("AddHostingAddon", new object[] {
                        userId,
                        addonName,
                        productSku,
                        taxInclusive,
                        planId,
                        recurring,
                        dummyAddon,
                        countable,
                        enabled,
                        description,
                        addonCycles,
                        addonProducts}, callback, asyncState);
        }
        
        /// <remarks/>
        public int EndAddHostingAddon(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void AddHostingAddonAsync(int userId, string addonName, string productSku, bool taxInclusive, int planId, bool recurring, bool dummyAddon, bool countable, bool enabled, string description, HostingPlanCycle[] addonCycles, int[] addonProducts) {
            this.AddHostingAddonAsync(userId, addonName, productSku, taxInclusive, planId, recurring, dummyAddon, countable, enabled, description, addonCycles, addonProducts, null);
        }
        
        /// <remarks/>
        public void AddHostingAddonAsync(int userId, string addonName, string productSku, bool taxInclusive, int planId, bool recurring, bool dummyAddon, bool countable, bool enabled, string description, HostingPlanCycle[] addonCycles, int[] addonProducts, object userState) {
            if ((this.AddHostingAddonOperationCompleted == null)) {
                this.AddHostingAddonOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddHostingAddonOperationCompleted);
            }
            this.InvokeAsync("AddHostingAddon", new object[] {
                        userId,
                        addonName,
                        productSku,
                        taxInclusive,
                        planId,
                        recurring,
                        dummyAddon,
                        countable,
                        enabled,
                        description,
                        addonCycles,
                        addonProducts}, this.AddHostingAddonOperationCompleted, userState);
        }
        
        private void OnAddHostingAddonOperationCompleted(object arg) {
            if ((this.AddHostingAddonCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.AddHostingAddonCompleted(this, new AddHostingAddonCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/UpdateHostingPlan", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int UpdateHostingPlan(int userId, int productId, string planName, string productSku, bool taxInclusive, int planId, int userRole, int initialStatus, int domainOption, bool enabled, string planDescription, HostingPlanCycle[] planCycles, string[] planHighlights, int[] planCategories) {
            object[] results = this.Invoke("UpdateHostingPlan", new object[] {
                        userId,
                        productId,
                        planName,
                        productSku,
                        taxInclusive,
                        planId,
                        userRole,
                        initialStatus,
                        domainOption,
                        enabled,
                        planDescription,
                        planCycles,
                        planHighlights,
                        planCategories});
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginUpdateHostingPlan(
                    int userId, 
                    int productId, 
                    string planName, 
                    string productSku, 
                    bool taxInclusive, 
                    int planId, 
                    int userRole, 
                    int initialStatus, 
                    int domainOption, 
                    bool enabled, 
                    string planDescription, 
                    HostingPlanCycle[] planCycles, 
                    string[] planHighlights, 
                    int[] planCategories, 
                    System.AsyncCallback callback, 
                    object asyncState) {
            return this.BeginInvoke("UpdateHostingPlan", new object[] {
                        userId,
                        productId,
                        planName,
                        productSku,
                        taxInclusive,
                        planId,
                        userRole,
                        initialStatus,
                        domainOption,
                        enabled,
                        planDescription,
                        planCycles,
                        planHighlights,
                        planCategories}, callback, asyncState);
        }
        
        /// <remarks/>
        public int EndUpdateHostingPlan(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void UpdateHostingPlanAsync(int userId, int productId, string planName, string productSku, bool taxInclusive, int planId, int userRole, int initialStatus, int domainOption, bool enabled, string planDescription, HostingPlanCycle[] planCycles, string[] planHighlights, int[] planCategories) {
            this.UpdateHostingPlanAsync(userId, productId, planName, productSku, taxInclusive, planId, userRole, initialStatus, domainOption, enabled, planDescription, planCycles, planHighlights, planCategories, null);
        }
        
        /// <remarks/>
        public void UpdateHostingPlanAsync(int userId, int productId, string planName, string productSku, bool taxInclusive, int planId, int userRole, int initialStatus, int domainOption, bool enabled, string planDescription, HostingPlanCycle[] planCycles, string[] planHighlights, int[] planCategories, object userState) {
            if ((this.UpdateHostingPlanOperationCompleted == null)) {
                this.UpdateHostingPlanOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateHostingPlanOperationCompleted);
            }
            this.InvokeAsync("UpdateHostingPlan", new object[] {
                        userId,
                        productId,
                        planName,
                        productSku,
                        taxInclusive,
                        planId,
                        userRole,
                        initialStatus,
                        domainOption,
                        enabled,
                        planDescription,
                        planCycles,
                        planHighlights,
                        planCategories}, this.UpdateHostingPlanOperationCompleted, userState);
        }
        
        private void OnUpdateHostingPlanOperationCompleted(object arg) {
            if ((this.UpdateHostingPlanCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.UpdateHostingPlanCompleted(this, new UpdateHostingPlanCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/UpdateHostingAddon", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int UpdateHostingAddon(int userId, int productId, string addonName, string productSku, bool taxInclusive, int planId, bool recurring, bool dummyAddon, bool countable, bool enabled, string description, HostingPlanCycle[] addonCycles, int[] addonProducts) {
            object[] results = this.Invoke("UpdateHostingAddon", new object[] {
                        userId,
                        productId,
                        addonName,
                        productSku,
                        taxInclusive,
                        planId,
                        recurring,
                        dummyAddon,
                        countable,
                        enabled,
                        description,
                        addonCycles,
                        addonProducts});
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginUpdateHostingAddon(int userId, int productId, string addonName, string productSku, bool taxInclusive, int planId, bool recurring, bool dummyAddon, bool countable, bool enabled, string description, HostingPlanCycle[] addonCycles, int[] addonProducts, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("UpdateHostingAddon", new object[] {
                        userId,
                        productId,
                        addonName,
                        productSku,
                        taxInclusive,
                        planId,
                        recurring,
                        dummyAddon,
                        countable,
                        enabled,
                        description,
                        addonCycles,
                        addonProducts}, callback, asyncState);
        }
        
        /// <remarks/>
        public int EndUpdateHostingAddon(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void UpdateHostingAddonAsync(int userId, int productId, string addonName, string productSku, bool taxInclusive, int planId, bool recurring, bool dummyAddon, bool countable, bool enabled, string description, HostingPlanCycle[] addonCycles, int[] addonProducts) {
            this.UpdateHostingAddonAsync(userId, productId, addonName, productSku, taxInclusive, planId, recurring, dummyAddon, countable, enabled, description, addonCycles, addonProducts, null);
        }
        
        /// <remarks/>
        public void UpdateHostingAddonAsync(int userId, int productId, string addonName, string productSku, bool taxInclusive, int planId, bool recurring, bool dummyAddon, bool countable, bool enabled, string description, HostingPlanCycle[] addonCycles, int[] addonProducts, object userState) {
            if ((this.UpdateHostingAddonOperationCompleted == null)) {
                this.UpdateHostingAddonOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateHostingAddonOperationCompleted);
            }
            this.InvokeAsync("UpdateHostingAddon", new object[] {
                        userId,
                        productId,
                        addonName,
                        productSku,
                        taxInclusive,
                        planId,
                        recurring,
                        dummyAddon,
                        countable,
                        enabled,
                        description,
                        addonCycles,
                        addonProducts}, this.UpdateHostingAddonOperationCompleted, userState);
        }
        
        private void OnUpdateHostingAddonOperationCompleted(object arg) {
            if ((this.UpdateHostingAddonCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.UpdateHostingAddonCompleted(this, new UpdateHostingAddonCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/UpdateTopLevelDomain", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int UpdateTopLevelDomain(int userId, int productId, string topLevelDomain, string productSku, bool taxInclusive, int pluginId, bool enabled, bool whoisEnabled, DomainNameCycle[] domainCycles) {
            object[] results = this.Invoke("UpdateTopLevelDomain", new object[] {
                        userId,
                        productId,
                        topLevelDomain,
                        productSku,
                        taxInclusive,
                        pluginId,
                        enabled,
                        whoisEnabled,
                        domainCycles});
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginUpdateTopLevelDomain(int userId, int productId, string topLevelDomain, string productSku, bool taxInclusive, int pluginId, bool enabled, bool whoisEnabled, DomainNameCycle[] domainCycles, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("UpdateTopLevelDomain", new object[] {
                        userId,
                        productId,
                        topLevelDomain,
                        productSku,
                        taxInclusive,
                        pluginId,
                        enabled,
                        whoisEnabled,
                        domainCycles}, callback, asyncState);
        }
        
        /// <remarks/>
        public int EndUpdateTopLevelDomain(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void UpdateTopLevelDomainAsync(int userId, int productId, string topLevelDomain, string productSku, bool taxInclusive, int pluginId, bool enabled, bool whoisEnabled, DomainNameCycle[] domainCycles) {
            this.UpdateTopLevelDomainAsync(userId, productId, topLevelDomain, productSku, taxInclusive, pluginId, enabled, whoisEnabled, domainCycles, null);
        }
        
        /// <remarks/>
        public void UpdateTopLevelDomainAsync(int userId, int productId, string topLevelDomain, string productSku, bool taxInclusive, int pluginId, bool enabled, bool whoisEnabled, DomainNameCycle[] domainCycles, object userState) {
            if ((this.UpdateTopLevelDomainOperationCompleted == null)) {
                this.UpdateTopLevelDomainOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateTopLevelDomainOperationCompleted);
            }
            this.InvokeAsync("UpdateTopLevelDomain", new object[] {
                        userId,
                        productId,
                        topLevelDomain,
                        productSku,
                        taxInclusive,
                        pluginId,
                        enabled,
                        whoisEnabled,
                        domainCycles}, this.UpdateTopLevelDomainOperationCompleted, userState);
        }
        
        private void OnUpdateTopLevelDomainOperationCompleted(object arg) {
            if ((this.UpdateTopLevelDomainCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.UpdateTopLevelDomainCompleted(this, new UpdateTopLevelDomainCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetProductsCountByType", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int GetProductsCountByType(int userId, int typeId) {
            object[] results = this.Invoke("GetProductsCountByType", new object[] {
                        userId,
                        typeId});
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetProductsCountByType(int userId, int typeId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetProductsCountByType", new object[] {
                        userId,
                        typeId}, callback, asyncState);
        }
        
        /// <remarks/>
        public int EndGetProductsCountByType(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void GetProductsCountByTypeAsync(int userId, int typeId) {
            this.GetProductsCountByTypeAsync(userId, typeId, null);
        }
        
        /// <remarks/>
        public void GetProductsCountByTypeAsync(int userId, int typeId, object userState) {
            if ((this.GetProductsCountByTypeOperationCompleted == null)) {
                this.GetProductsCountByTypeOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetProductsCountByTypeOperationCompleted);
            }
            this.InvokeAsync("GetProductsCountByType", new object[] {
                        userId,
                        typeId}, this.GetProductsCountByTypeOperationCompleted, userState);
        }
        
        private void OnGetProductsCountByTypeOperationCompleted(object arg) {
            if ((this.GetProductsCountByTypeCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetProductsCountByTypeCompleted(this, new GetProductsCountByTypeCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetProductsPagedByType", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public Product[] GetProductsPagedByType(int userId, int typeId, int maximumRows, int startRowIndex) {
            object[] results = this.Invoke("GetProductsPagedByType", new object[] {
                        userId,
                        typeId,
                        maximumRows,
                        startRowIndex});
            return ((Product[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetProductsPagedByType(int userId, int typeId, int maximumRows, int startRowIndex, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetProductsPagedByType", new object[] {
                        userId,
                        typeId,
                        maximumRows,
                        startRowIndex}, callback, asyncState);
        }
        
        /// <remarks/>
        public Product[] EndGetProductsPagedByType(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((Product[])(results[0]));
        }
        
        /// <remarks/>
        public void GetProductsPagedByTypeAsync(int userId, int typeId, int maximumRows, int startRowIndex) {
            this.GetProductsPagedByTypeAsync(userId, typeId, maximumRows, startRowIndex, null);
        }
        
        /// <remarks/>
        public void GetProductsPagedByTypeAsync(int userId, int typeId, int maximumRows, int startRowIndex, object userState) {
            if ((this.GetProductsPagedByTypeOperationCompleted == null)) {
                this.GetProductsPagedByTypeOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetProductsPagedByTypeOperationCompleted);
            }
            this.InvokeAsync("GetProductsPagedByType", new object[] {
                        userId,
                        typeId,
                        maximumRows,
                        startRowIndex}, this.GetProductsPagedByTypeOperationCompleted, userState);
        }
        
        private void OnGetProductsPagedByTypeOperationCompleted(object arg) {
            if ((this.GetProductsPagedByTypeCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetProductsPagedByTypeCompleted(this, new GetProductsPagedByTypeCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetHostingPlansTaken", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int[] GetHostingPlansTaken(int userId) {
            object[] results = this.Invoke("GetHostingPlansTaken", new object[] {
                        userId});
            return ((int[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetHostingPlansTaken(int userId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetHostingPlansTaken", new object[] {
                        userId}, callback, asyncState);
        }
        
        /// <remarks/>
        public int[] EndGetHostingPlansTaken(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int[])(results[0]));
        }
        
        /// <remarks/>
        public void GetHostingPlansTakenAsync(int userId) {
            this.GetHostingPlansTakenAsync(userId, null);
        }
        
        /// <remarks/>
        public void GetHostingPlansTakenAsync(int userId, object userState) {
            if ((this.GetHostingPlansTakenOperationCompleted == null)) {
                this.GetHostingPlansTakenOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetHostingPlansTakenOperationCompleted);
            }
            this.InvokeAsync("GetHostingPlansTaken", new object[] {
                        userId}, this.GetHostingPlansTakenOperationCompleted, userState);
        }
        
        private void OnGetHostingPlansTakenOperationCompleted(object arg) {
            if ((this.GetHostingPlansTakenCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetHostingPlansTakenCompleted(this, new GetHostingPlansTakenCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetHostingAddonsTaken", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int[] GetHostingAddonsTaken(int userId) {
            object[] results = this.Invoke("GetHostingAddonsTaken", new object[] {
                        userId});
            return ((int[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetHostingAddonsTaken(int userId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetHostingAddonsTaken", new object[] {
                        userId}, callback, asyncState);
        }
        
        /// <remarks/>
        public int[] EndGetHostingAddonsTaken(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int[])(results[0]));
        }
        
        /// <remarks/>
        public void GetHostingAddonsTakenAsync(int userId) {
            this.GetHostingAddonsTakenAsync(userId, null);
        }
        
        /// <remarks/>
        public void GetHostingAddonsTakenAsync(int userId, object userState) {
            if ((this.GetHostingAddonsTakenOperationCompleted == null)) {
                this.GetHostingAddonsTakenOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetHostingAddonsTakenOperationCompleted);
            }
            this.InvokeAsync("GetHostingAddonsTaken", new object[] {
                        userId}, this.GetHostingAddonsTakenOperationCompleted, userState);
        }
        
        private void OnGetHostingAddonsTakenOperationCompleted(object arg) {
            if ((this.GetHostingAddonsTakenCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetHostingAddonsTakenCompleted(this, new GetHostingAddonsTakenCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetHostingPlan", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public HostingPlan GetHostingPlan(int userId, int productId) {
            object[] results = this.Invoke("GetHostingPlan", new object[] {
                        userId,
                        productId});
            return ((HostingPlan)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetHostingPlan(int userId, int productId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetHostingPlan", new object[] {
                        userId,
                        productId}, callback, asyncState);
        }
        
        /// <remarks/>
        public HostingPlan EndGetHostingPlan(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((HostingPlan)(results[0]));
        }
        
        /// <remarks/>
        public void GetHostingPlanAsync(int userId, int productId) {
            this.GetHostingPlanAsync(userId, productId, null);
        }
        
        /// <remarks/>
        public void GetHostingPlanAsync(int userId, int productId, object userState) {
            if ((this.GetHostingPlanOperationCompleted == null)) {
                this.GetHostingPlanOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetHostingPlanOperationCompleted);
            }
            this.InvokeAsync("GetHostingPlan", new object[] {
                        userId,
                        productId}, this.GetHostingPlanOperationCompleted, userState);
        }
        
        private void OnGetHostingPlanOperationCompleted(object arg) {
            if ((this.GetHostingPlanCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetHostingPlanCompleted(this, new GetHostingPlanCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetHostingAddon", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public HostingAddon GetHostingAddon(int userId, int productId) {
            object[] results = this.Invoke("GetHostingAddon", new object[] {
                        userId,
                        productId});
            return ((HostingAddon)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetHostingAddon(int userId, int productId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetHostingAddon", new object[] {
                        userId,
                        productId}, callback, asyncState);
        }
        
        /// <remarks/>
        public HostingAddon EndGetHostingAddon(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((HostingAddon)(results[0]));
        }
        
        /// <remarks/>
        public void GetHostingAddonAsync(int userId, int productId) {
            this.GetHostingAddonAsync(userId, productId, null);
        }
        
        /// <remarks/>
        public void GetHostingAddonAsync(int userId, int productId, object userState) {
            if ((this.GetHostingAddonOperationCompleted == null)) {
                this.GetHostingAddonOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetHostingAddonOperationCompleted);
            }
            this.InvokeAsync("GetHostingAddon", new object[] {
                        userId,
                        productId}, this.GetHostingAddonOperationCompleted, userState);
        }
        
        private void OnGetHostingAddonOperationCompleted(object arg) {
            if ((this.GetHostingAddonCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetHostingAddonCompleted(this, new GetHostingAddonCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetHostingPlanCycles", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public HostingPlanCycle[] GetHostingPlanCycles(int userId, int productId) {
            object[] results = this.Invoke("GetHostingPlanCycles", new object[] {
                        userId,
                        productId});
            return ((HostingPlanCycle[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetHostingPlanCycles(int userId, int productId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetHostingPlanCycles", new object[] {
                        userId,
                        productId}, callback, asyncState);
        }
        
        /// <remarks/>
        public HostingPlanCycle[] EndGetHostingPlanCycles(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((HostingPlanCycle[])(results[0]));
        }
        
        /// <remarks/>
        public void GetHostingPlanCyclesAsync(int userId, int productId) {
            this.GetHostingPlanCyclesAsync(userId, productId, null);
        }
        
        /// <remarks/>
        public void GetHostingPlanCyclesAsync(int userId, int productId, object userState) {
            if ((this.GetHostingPlanCyclesOperationCompleted == null)) {
                this.GetHostingPlanCyclesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetHostingPlanCyclesOperationCompleted);
            }
            this.InvokeAsync("GetHostingPlanCycles", new object[] {
                        userId,
                        productId}, this.GetHostingPlanCyclesOperationCompleted, userState);
        }
        
        private void OnGetHostingPlanCyclesOperationCompleted(object arg) {
            if ((this.GetHostingPlanCyclesCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetHostingPlanCyclesCompleted(this, new GetHostingPlanCyclesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetHostingAddonCycles", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public HostingPlanCycle[] GetHostingAddonCycles(int userId, int productId) {
            object[] results = this.Invoke("GetHostingAddonCycles", new object[] {
                        userId,
                        productId});
            return ((HostingPlanCycle[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetHostingAddonCycles(int userId, int productId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetHostingAddonCycles", new object[] {
                        userId,
                        productId}, callback, asyncState);
        }
        
        /// <remarks/>
        public HostingPlanCycle[] EndGetHostingAddonCycles(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((HostingPlanCycle[])(results[0]));
        }
        
        /// <remarks/>
        public void GetHostingAddonCyclesAsync(int userId, int productId) {
            this.GetHostingAddonCyclesAsync(userId, productId, null);
        }
        
        /// <remarks/>
        public void GetHostingAddonCyclesAsync(int userId, int productId, object userState) {
            if ((this.GetHostingAddonCyclesOperationCompleted == null)) {
                this.GetHostingAddonCyclesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetHostingAddonCyclesOperationCompleted);
            }
            this.InvokeAsync("GetHostingAddonCycles", new object[] {
                        userId,
                        productId}, this.GetHostingAddonCyclesOperationCompleted, userState);
        }
        
        private void OnGetHostingAddonCyclesOperationCompleted(object arg) {
            if ((this.GetHostingAddonCyclesCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetHostingAddonCyclesCompleted(this, new GetHostingAddonCyclesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetProductHighlights", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public string[] GetProductHighlights(int resellerId, int productId) {
            object[] results = this.Invoke("GetProductHighlights", new object[] {
                        resellerId,
                        productId});
            return ((string[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetProductHighlights(int resellerId, int productId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetProductHighlights", new object[] {
                        resellerId,
                        productId}, callback, asyncState);
        }
        
        /// <remarks/>
        public string[] EndGetProductHighlights(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((string[])(results[0]));
        }
        
        /// <remarks/>
        public void GetProductHighlightsAsync(int resellerId, int productId) {
            this.GetProductHighlightsAsync(resellerId, productId, null);
        }
        
        /// <remarks/>
        public void GetProductHighlightsAsync(int resellerId, int productId, object userState) {
            if ((this.GetProductHighlightsOperationCompleted == null)) {
                this.GetProductHighlightsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetProductHighlightsOperationCompleted);
            }
            this.InvokeAsync("GetProductHighlights", new object[] {
                        resellerId,
                        productId}, this.GetProductHighlightsOperationCompleted, userState);
        }
        
        private void OnGetProductHighlightsOperationCompleted(object arg) {
            if ((this.GetProductHighlightsCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetProductHighlightsCompleted(this, new GetProductHighlightsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetProductCategories", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public Category[] GetProductCategories(int userId, int productId) {
            object[] results = this.Invoke("GetProductCategories", new object[] {
                        userId,
                        productId});
            return ((Category[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetProductCategories(int userId, int productId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetProductCategories", new object[] {
                        userId,
                        productId}, callback, asyncState);
        }
        
        /// <remarks/>
        public Category[] EndGetProductCategories(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((Category[])(results[0]));
        }
        
        /// <remarks/>
        public void GetProductCategoriesAsync(int userId, int productId) {
            this.GetProductCategoriesAsync(userId, productId, null);
        }
        
        /// <remarks/>
        public void GetProductCategoriesAsync(int userId, int productId, object userState) {
            if ((this.GetProductCategoriesOperationCompleted == null)) {
                this.GetProductCategoriesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetProductCategoriesOperationCompleted);
            }
            this.InvokeAsync("GetProductCategories", new object[] {
                        userId,
                        productId}, this.GetProductCategoriesOperationCompleted, userState);
        }
        
        private void OnGetProductCategoriesOperationCompleted(object arg) {
            if ((this.GetProductCategoriesCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetProductCategoriesCompleted(this, new GetProductCategoriesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetProductCategoriesIds", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int[] GetProductCategoriesIds(int userId, int productId) {
            object[] results = this.Invoke("GetProductCategoriesIds", new object[] {
                        userId,
                        productId});
            return ((int[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetProductCategoriesIds(int userId, int productId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetProductCategoriesIds", new object[] {
                        userId,
                        productId}, callback, asyncState);
        }
        
        /// <remarks/>
        public int[] EndGetProductCategoriesIds(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int[])(results[0]));
        }
        
        /// <remarks/>
        public void GetProductCategoriesIdsAsync(int userId, int productId) {
            this.GetProductCategoriesIdsAsync(userId, productId, null);
        }
        
        /// <remarks/>
        public void GetProductCategoriesIdsAsync(int userId, int productId, object userState) {
            if ((this.GetProductCategoriesIdsOperationCompleted == null)) {
                this.GetProductCategoriesIdsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetProductCategoriesIdsOperationCompleted);
            }
            this.InvokeAsync("GetProductCategoriesIds", new object[] {
                        userId,
                        productId}, this.GetProductCategoriesIdsOperationCompleted, userState);
        }
        
        private void OnGetProductCategoriesIdsOperationCompleted(object arg) {
            if ((this.GetProductCategoriesIdsCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetProductCategoriesIdsCompleted(this, new GetProductCategoriesIdsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/DeleteProduct", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int DeleteProduct(int userId, int productId) {
            object[] results = this.Invoke("DeleteProduct", new object[] {
                        userId,
                        productId});
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginDeleteProduct(int userId, int productId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("DeleteProduct", new object[] {
                        userId,
                        productId}, callback, asyncState);
        }
        
        /// <remarks/>
        public int EndDeleteProduct(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void DeleteProductAsync(int userId, int productId) {
            this.DeleteProductAsync(userId, productId, null);
        }
        
        /// <remarks/>
        public void DeleteProductAsync(int userId, int productId, object userState) {
            if ((this.DeleteProductOperationCompleted == null)) {
                this.DeleteProductOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteProductOperationCompleted);
            }
            this.InvokeAsync("DeleteProduct", new object[] {
                        userId,
                        productId}, this.DeleteProductOperationCompleted, userState);
        }
        
        private void OnDeleteProductOperationCompleted(object arg) {
            if ((this.DeleteProductCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.DeleteProductCompleted(this, new DeleteProductCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetAddonProducts", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public Product[] GetAddonProducts(int userId, int productId) {
            object[] results = this.Invoke("GetAddonProducts", new object[] {
                        userId,
                        productId});
            return ((Product[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetAddonProducts(int userId, int productId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetAddonProducts", new object[] {
                        userId,
                        productId}, callback, asyncState);
        }
        
        /// <remarks/>
        public Product[] EndGetAddonProducts(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((Product[])(results[0]));
        }
        
        /// <remarks/>
        public void GetAddonProductsAsync(int userId, int productId) {
            this.GetAddonProductsAsync(userId, productId, null);
        }
        
        /// <remarks/>
        public void GetAddonProductsAsync(int userId, int productId, object userState) {
            if ((this.GetAddonProductsOperationCompleted == null)) {
                this.GetAddonProductsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetAddonProductsOperationCompleted);
            }
            this.InvokeAsync("GetAddonProducts", new object[] {
                        userId,
                        productId}, this.GetAddonProductsOperationCompleted, userState);
        }
        
        private void OnGetAddonProductsOperationCompleted(object arg) {
            if ((this.GetAddonProductsCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetAddonProductsCompleted(this, new GetAddonProductsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetAddonProductsIds", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int[] GetAddonProductsIds(int userId, int productId) {
            object[] results = this.Invoke("GetAddonProductsIds", new object[] {
                        userId,
                        productId});
            return ((int[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetAddonProductsIds(int userId, int productId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetAddonProductsIds", new object[] {
                        userId,
                        productId}, callback, asyncState);
        }
        
        /// <remarks/>
        public int[] EndGetAddonProductsIds(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int[])(results[0]));
        }
        
        /// <remarks/>
        public void GetAddonProductsIdsAsync(int userId, int productId) {
            this.GetAddonProductsIdsAsync(userId, productId, null);
        }
        
        /// <remarks/>
        public void GetAddonProductsIdsAsync(int userId, int productId, object userState) {
            if ((this.GetAddonProductsIdsOperationCompleted == null)) {
                this.GetAddonProductsIdsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetAddonProductsIdsOperationCompleted);
            }
            this.InvokeAsync("GetAddonProductsIds", new object[] {
                        userId,
                        productId}, this.GetAddonProductsIdsOperationCompleted, userState);
        }
        
        private void OnGetAddonProductsIdsOperationCompleted(object arg) {
            if ((this.GetAddonProductsIdsCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetAddonProductsIdsCompleted(this, new GetAddonProductsIdsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetProductsByType", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public Product[] GetProductsByType(int userId, int typeId) {
            object[] results = this.Invoke("GetProductsByType", new object[] {
                        userId,
                        typeId});
            return ((Product[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetProductsByType(int userId, int typeId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetProductsByType", new object[] {
                        userId,
                        typeId}, callback, asyncState);
        }
        
        /// <remarks/>
        public Product[] EndGetProductsByType(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((Product[])(results[0]));
        }
        
        /// <remarks/>
        public void GetProductsByTypeAsync(int userId, int typeId) {
            this.GetProductsByTypeAsync(userId, typeId, null);
        }
        
        /// <remarks/>
        public void GetProductsByTypeAsync(int userId, int typeId, object userState) {
            if ((this.GetProductsByTypeOperationCompleted == null)) {
                this.GetProductsByTypeOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetProductsByTypeOperationCompleted);
            }
            this.InvokeAsync("GetProductsByType", new object[] {
                        userId,
                        typeId}, this.GetProductsByTypeOperationCompleted, userState);
        }
        
        private void OnGetProductsByTypeOperationCompleted(object arg) {
            if ((this.GetProductsByTypeCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetProductsByTypeCompleted(this, new GetProductsByTypeCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetTopLevelDomainsPaged", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public TopLevelDomain[] GetTopLevelDomainsPaged(int userId, int maximumRows, int startRowIndex) {
            object[] results = this.Invoke("GetTopLevelDomainsPaged", new object[] {
                        userId,
                        maximumRows,
                        startRowIndex});
            return ((TopLevelDomain[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetTopLevelDomainsPaged(int userId, int maximumRows, int startRowIndex, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetTopLevelDomainsPaged", new object[] {
                        userId,
                        maximumRows,
                        startRowIndex}, callback, asyncState);
        }
        
        /// <remarks/>
        public TopLevelDomain[] EndGetTopLevelDomainsPaged(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((TopLevelDomain[])(results[0]));
        }
        
        /// <remarks/>
        public void GetTopLevelDomainsPagedAsync(int userId, int maximumRows, int startRowIndex) {
            this.GetTopLevelDomainsPagedAsync(userId, maximumRows, startRowIndex, null);
        }
        
        /// <remarks/>
        public void GetTopLevelDomainsPagedAsync(int userId, int maximumRows, int startRowIndex, object userState) {
            if ((this.GetTopLevelDomainsPagedOperationCompleted == null)) {
                this.GetTopLevelDomainsPagedOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetTopLevelDomainsPagedOperationCompleted);
            }
            this.InvokeAsync("GetTopLevelDomainsPaged", new object[] {
                        userId,
                        maximumRows,
                        startRowIndex}, this.GetTopLevelDomainsPagedOperationCompleted, userState);
        }
        
        private void OnGetTopLevelDomainsPagedOperationCompleted(object arg) {
            if ((this.GetTopLevelDomainsPagedCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetTopLevelDomainsPagedCompleted(this, new GetTopLevelDomainsPagedCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetTopLevelDomain", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public TopLevelDomain GetTopLevelDomain(int userId, int productId) {
            object[] results = this.Invoke("GetTopLevelDomain", new object[] {
                        userId,
                        productId});
            return ((TopLevelDomain)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetTopLevelDomain(int userId, int productId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetTopLevelDomain", new object[] {
                        userId,
                        productId}, callback, asyncState);
        }
        
        /// <remarks/>
        public TopLevelDomain EndGetTopLevelDomain(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((TopLevelDomain)(results[0]));
        }
        
        /// <remarks/>
        public void GetTopLevelDomainAsync(int userId, int productId) {
            this.GetTopLevelDomainAsync(userId, productId, null);
        }
        
        /// <remarks/>
        public void GetTopLevelDomainAsync(int userId, int productId, object userState) {
            if ((this.GetTopLevelDomainOperationCompleted == null)) {
                this.GetTopLevelDomainOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetTopLevelDomainOperationCompleted);
            }
            this.InvokeAsync("GetTopLevelDomain", new object[] {
                        userId,
                        productId}, this.GetTopLevelDomainOperationCompleted, userState);
        }
        
        private void OnGetTopLevelDomainOperationCompleted(object arg) {
            if ((this.GetTopLevelDomainCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetTopLevelDomainCompleted(this, new GetTopLevelDomainCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetTopLevelDomainCycles", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public DomainNameCycle[] GetTopLevelDomainCycles(int userId, int productId) {
            object[] results = this.Invoke("GetTopLevelDomainCycles", new object[] {
                        userId,
                        productId});
            return ((DomainNameCycle[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetTopLevelDomainCycles(int userId, int productId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetTopLevelDomainCycles", new object[] {
                        userId,
                        productId}, callback, asyncState);
        }
        
        /// <remarks/>
        public DomainNameCycle[] EndGetTopLevelDomainCycles(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((DomainNameCycle[])(results[0]));
        }
        
        /// <remarks/>
        public void GetTopLevelDomainCyclesAsync(int userId, int productId) {
            this.GetTopLevelDomainCyclesAsync(userId, productId, null);
        }
        
        /// <remarks/>
        public void GetTopLevelDomainCyclesAsync(int userId, int productId, object userState) {
            if ((this.GetTopLevelDomainCyclesOperationCompleted == null)) {
                this.GetTopLevelDomainCyclesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetTopLevelDomainCyclesOperationCompleted);
            }
            this.InvokeAsync("GetTopLevelDomainCycles", new object[] {
                        userId,
                        productId}, this.GetTopLevelDomainCyclesOperationCompleted, userState);
        }
        
        private void OnGetTopLevelDomainCyclesOperationCompleted(object arg) {
            if ((this.GetTopLevelDomainCyclesCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetTopLevelDomainCyclesCompleted(this, new GetTopLevelDomainCyclesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetSupportedPluginsByGroup", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public SupportedPlugin[] GetSupportedPluginsByGroup(int userId, string groupName) {
            object[] results = this.Invoke("GetSupportedPluginsByGroup", new object[] {
                        userId,
                        groupName});
            return ((SupportedPlugin[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetSupportedPluginsByGroup(int userId, string groupName, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetSupportedPluginsByGroup", new object[] {
                        userId,
                        groupName}, callback, asyncState);
        }
        
        /// <remarks/>
        public SupportedPlugin[] EndGetSupportedPluginsByGroup(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((SupportedPlugin[])(results[0]));
        }
        
        /// <remarks/>
        public void GetSupportedPluginsByGroupAsync(int userId, string groupName) {
            this.GetSupportedPluginsByGroupAsync(userId, groupName, null);
        }
        
        /// <remarks/>
        public void GetSupportedPluginsByGroupAsync(int userId, string groupName, object userState) {
            if ((this.GetSupportedPluginsByGroupOperationCompleted == null)) {
                this.GetSupportedPluginsByGroupOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetSupportedPluginsByGroupOperationCompleted);
            }
            this.InvokeAsync("GetSupportedPluginsByGroup", new object[] {
                        userId,
                        groupName}, this.GetSupportedPluginsByGroupOperationCompleted, userState);
        }
        
        private void OnGetSupportedPluginsByGroupOperationCompleted(object arg) {
            if ((this.GetSupportedPluginsByGroupCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetSupportedPluginsByGroupCompleted(this, new GetSupportedPluginsByGroupCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetPaymentMethod", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public PaymentMethod GetPaymentMethod(int userId, string methodName) {
            object[] results = this.Invoke("GetPaymentMethod", new object[] {
                        userId,
                        methodName});
            return ((PaymentMethod)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetPaymentMethod(int userId, string methodName, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetPaymentMethod", new object[] {
                        userId,
                        methodName}, callback, asyncState);
        }
        
        /// <remarks/>
        public PaymentMethod EndGetPaymentMethod(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((PaymentMethod)(results[0]));
        }
        
        /// <remarks/>
        public void GetPaymentMethodAsync(int userId, string methodName) {
            this.GetPaymentMethodAsync(userId, methodName, null);
        }
        
        /// <remarks/>
        public void GetPaymentMethodAsync(int userId, string methodName, object userState) {
            if ((this.GetPaymentMethodOperationCompleted == null)) {
                this.GetPaymentMethodOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetPaymentMethodOperationCompleted);
            }
            this.InvokeAsync("GetPaymentMethod", new object[] {
                        userId,
                        methodName}, this.GetPaymentMethodOperationCompleted, userState);
        }
        
        private void OnGetPaymentMethodOperationCompleted(object arg) {
            if ((this.GetPaymentMethodCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetPaymentMethodCompleted(this, new GetPaymentMethodCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/SetPaymentProfile", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public void SetPaymentProfile(string contractId, CheckoutDetails profile) {
            this.Invoke("SetPaymentProfile", new object[] {
                        contractId,
                        profile});
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginSetPaymentProfile(string contractId, CheckoutDetails profile, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("SetPaymentProfile", new object[] {
                        contractId,
                        profile}, callback, asyncState);
        }
        
        /// <remarks/>
        public void EndSetPaymentProfile(System.IAsyncResult asyncResult) {
            this.EndInvoke(asyncResult);
        }
        
        /// <remarks/>
        public void SetPaymentProfileAsync(string contractId, CheckoutDetails profile) {
            this.SetPaymentProfileAsync(contractId, profile, null);
        }
        
        /// <remarks/>
        public void SetPaymentProfileAsync(string contractId, CheckoutDetails profile, object userState) {
            if ((this.SetPaymentProfileOperationCompleted == null)) {
                this.SetPaymentProfileOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetPaymentProfileOperationCompleted);
            }
            this.InvokeAsync("SetPaymentProfile", new object[] {
                        contractId,
                        profile}, this.SetPaymentProfileOperationCompleted, userState);
        }
        
        private void OnSetPaymentProfileOperationCompleted(object arg) {
            if ((this.SetPaymentProfileCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.SetPaymentProfileCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetPaymentProfile", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public CheckoutDetails GetPaymentProfile(string contractId) {
            object[] results = this.Invoke("GetPaymentProfile", new object[] {
                        contractId});
            return ((CheckoutDetails)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetPaymentProfile(string contractId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetPaymentProfile", new object[] {
                        contractId}, callback, asyncState);
        }
        
        /// <remarks/>
        public CheckoutDetails EndGetPaymentProfile(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((CheckoutDetails)(results[0]));
        }
        
        /// <remarks/>
        public void GetPaymentProfileAsync(string contractId) {
            this.GetPaymentProfileAsync(contractId, null);
        }
        
        /// <remarks/>
        public void GetPaymentProfileAsync(string contractId, object userState) {
            if ((this.GetPaymentProfileOperationCompleted == null)) {
                this.GetPaymentProfileOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetPaymentProfileOperationCompleted);
            }
            this.InvokeAsync("GetPaymentProfile", new object[] {
                        contractId}, this.GetPaymentProfileOperationCompleted, userState);
        }
        
        private void OnGetPaymentProfileOperationCompleted(object arg) {
            if ((this.GetPaymentProfileCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetPaymentProfileCompleted(this, new GetPaymentProfileCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/DeletePaymentProfile", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int DeletePaymentProfile(string contractId) {
            object[] results = this.Invoke("DeletePaymentProfile", new object[] {
                        contractId});
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginDeletePaymentProfile(string contractId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("DeletePaymentProfile", new object[] {
                        contractId}, callback, asyncState);
        }
        
        /// <remarks/>
        public int EndDeletePaymentProfile(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void DeletePaymentProfileAsync(string contractId) {
            this.DeletePaymentProfileAsync(contractId, null);
        }
        
        /// <remarks/>
        public void DeletePaymentProfileAsync(string contractId, object userState) {
            if ((this.DeletePaymentProfileOperationCompleted == null)) {
                this.DeletePaymentProfileOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeletePaymentProfileOperationCompleted);
            }
            this.InvokeAsync("DeletePaymentProfile", new object[] {
                        contractId}, this.DeletePaymentProfileOperationCompleted, userState);
        }
        
        private void OnDeletePaymentProfileOperationCompleted(object arg) {
            if ((this.DeletePaymentProfileCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.DeletePaymentProfileCompleted(this, new DeletePaymentProfileCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/PaymentProfileExists", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public bool PaymentProfileExists(string contractId) {
            object[] results = this.Invoke("PaymentProfileExists", new object[] {
                        contractId});
            return ((bool)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginPaymentProfileExists(string contractId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("PaymentProfileExists", new object[] {
                        contractId}, callback, asyncState);
        }
        
        /// <remarks/>
        public bool EndPaymentProfileExists(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((bool)(results[0]));
        }
        
        /// <remarks/>
        public void PaymentProfileExistsAsync(string contractId) {
            this.PaymentProfileExistsAsync(contractId, null);
        }
        
        /// <remarks/>
        public void PaymentProfileExistsAsync(string contractId, object userState) {
            if ((this.PaymentProfileExistsOperationCompleted == null)) {
                this.PaymentProfileExistsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnPaymentProfileExistsOperationCompleted);
            }
            this.InvokeAsync("PaymentProfileExists", new object[] {
                        contractId}, this.PaymentProfileExistsOperationCompleted, userState);
        }
        
        private void OnPaymentProfileExistsOperationCompleted(object arg) {
            if ((this.PaymentProfileExistsCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.PaymentProfileExistsCompleted(this, new PaymentProfileExistsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetPluginProperties", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public KeyValueBunch GetPluginProperties(int userId, int pluginId) {
            object[] results = this.Invoke("GetPluginProperties", new object[] {
                        userId,
                        pluginId});
            return ((KeyValueBunch)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetPluginProperties(int userId, int pluginId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetPluginProperties", new object[] {
                        userId,
                        pluginId}, callback, asyncState);
        }
        
        /// <remarks/>
        public KeyValueBunch EndGetPluginProperties(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((KeyValueBunch)(results[0]));
        }
        
        /// <remarks/>
        public void GetPluginPropertiesAsync(int userId, int pluginId) {
            this.GetPluginPropertiesAsync(userId, pluginId, null);
        }
        
        /// <remarks/>
        public void GetPluginPropertiesAsync(int userId, int pluginId, object userState) {
            if ((this.GetPluginPropertiesOperationCompleted == null)) {
                this.GetPluginPropertiesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetPluginPropertiesOperationCompleted);
            }
            this.InvokeAsync("GetPluginProperties", new object[] {
                        userId,
                        pluginId}, this.GetPluginPropertiesOperationCompleted, userState);
        }
        
        private void OnGetPluginPropertiesOperationCompleted(object arg) {
            if ((this.GetPluginPropertiesCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetPluginPropertiesCompleted(this, new GetPluginPropertiesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/SetPluginProperties", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int SetPluginProperties(int userId, int pluginId, KeyValueBunch props) {
            object[] results = this.Invoke("SetPluginProperties", new object[] {
                        userId,
                        pluginId,
                        props});
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginSetPluginProperties(int userId, int pluginId, KeyValueBunch props, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("SetPluginProperties", new object[] {
                        userId,
                        pluginId,
                        props}, callback, asyncState);
        }
        
        /// <remarks/>
        public int EndSetPluginProperties(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void SetPluginPropertiesAsync(int userId, int pluginId, KeyValueBunch props) {
            this.SetPluginPropertiesAsync(userId, pluginId, props, null);
        }
        
        /// <remarks/>
        public void SetPluginPropertiesAsync(int userId, int pluginId, KeyValueBunch props, object userState) {
            if ((this.SetPluginPropertiesOperationCompleted == null)) {
                this.SetPluginPropertiesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetPluginPropertiesOperationCompleted);
            }
            this.InvokeAsync("SetPluginProperties", new object[] {
                        userId,
                        pluginId,
                        props}, this.SetPluginPropertiesOperationCompleted, userState);
        }
        
        private void OnSetPluginPropertiesOperationCompleted(object arg) {
            if ((this.SetPluginPropertiesCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.SetPluginPropertiesCompleted(this, new SetPluginPropertiesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/SetPaymentMethod", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int SetPaymentMethod(int userId, string methodName, string displayName, int pluginId) {
            object[] results = this.Invoke("SetPaymentMethod", new object[] {
                        userId,
                        methodName,
                        displayName,
                        pluginId});
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginSetPaymentMethod(int userId, string methodName, string displayName, int pluginId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("SetPaymentMethod", new object[] {
                        userId,
                        methodName,
                        displayName,
                        pluginId}, callback, asyncState);
        }
        
        /// <remarks/>
        public int EndSetPaymentMethod(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void SetPaymentMethodAsync(int userId, string methodName, string displayName, int pluginId) {
            this.SetPaymentMethodAsync(userId, methodName, displayName, pluginId, null);
        }
        
        /// <remarks/>
        public void SetPaymentMethodAsync(int userId, string methodName, string displayName, int pluginId, object userState) {
            if ((this.SetPaymentMethodOperationCompleted == null)) {
                this.SetPaymentMethodOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetPaymentMethodOperationCompleted);
            }
            this.InvokeAsync("SetPaymentMethod", new object[] {
                        userId,
                        methodName,
                        displayName,
                        pluginId}, this.SetPaymentMethodOperationCompleted, userState);
        }
        
        private void OnSetPaymentMethodOperationCompleted(object arg) {
            if ((this.SetPaymentMethodCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.SetPaymentMethodCompleted(this, new SetPaymentMethodCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/DeletePaymentMethod", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int DeletePaymentMethod(int userId, string methodName) {
            object[] results = this.Invoke("DeletePaymentMethod", new object[] {
                        userId,
                        methodName});
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginDeletePaymentMethod(int userId, string methodName, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("DeletePaymentMethod", new object[] {
                        userId,
                        methodName}, callback, asyncState);
        }
        
        /// <remarks/>
        public int EndDeletePaymentMethod(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void DeletePaymentMethodAsync(int userId, string methodName) {
            this.DeletePaymentMethodAsync(userId, methodName, null);
        }
        
        /// <remarks/>
        public void DeletePaymentMethodAsync(int userId, string methodName, object userState) {
            if ((this.DeletePaymentMethodOperationCompleted == null)) {
                this.DeletePaymentMethodOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeletePaymentMethodOperationCompleted);
            }
            this.InvokeAsync("DeletePaymentMethod", new object[] {
                        userId,
                        methodName}, this.DeletePaymentMethodOperationCompleted, userState);
        }
        
        private void OnDeletePaymentMethodOperationCompleted(object arg) {
            if ((this.DeletePaymentMethodCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.DeletePaymentMethodCompleted(this, new DeletePaymentMethodCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/AddTaxation", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int AddTaxation(int userId, string country, string state, string description, int typeId, decimal amount, bool active) {
            object[] results = this.Invoke("AddTaxation", new object[] {
                        userId,
                        country,
                        state,
                        description,
                        typeId,
                        amount,
                        active});
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginAddTaxation(int userId, string country, string state, string description, int typeId, decimal amount, bool active, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("AddTaxation", new object[] {
                        userId,
                        country,
                        state,
                        description,
                        typeId,
                        amount,
                        active}, callback, asyncState);
        }
        
        /// <remarks/>
        public int EndAddTaxation(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void AddTaxationAsync(int userId, string country, string state, string description, int typeId, decimal amount, bool active) {
            this.AddTaxationAsync(userId, country, state, description, typeId, amount, active, null);
        }
        
        /// <remarks/>
        public void AddTaxationAsync(int userId, string country, string state, string description, int typeId, decimal amount, bool active, object userState) {
            if ((this.AddTaxationOperationCompleted == null)) {
                this.AddTaxationOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddTaxationOperationCompleted);
            }
            this.InvokeAsync("AddTaxation", new object[] {
                        userId,
                        country,
                        state,
                        description,
                        typeId,
                        amount,
                        active}, this.AddTaxationOperationCompleted, userState);
        }
        
        private void OnAddTaxationOperationCompleted(object arg) {
            if ((this.AddTaxationCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.AddTaxationCompleted(this, new AddTaxationCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/UpdateTaxation", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int UpdateTaxation(int userId, int taxationId, string country, string state, string description, int typeId, decimal amount, bool active) {
            object[] results = this.Invoke("UpdateTaxation", new object[] {
                        userId,
                        taxationId,
                        country,
                        state,
                        description,
                        typeId,
                        amount,
                        active});
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginUpdateTaxation(int userId, int taxationId, string country, string state, string description, int typeId, decimal amount, bool active, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("UpdateTaxation", new object[] {
                        userId,
                        taxationId,
                        country,
                        state,
                        description,
                        typeId,
                        amount,
                        active}, callback, asyncState);
        }
        
        /// <remarks/>
        public int EndUpdateTaxation(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void UpdateTaxationAsync(int userId, int taxationId, string country, string state, string description, int typeId, decimal amount, bool active) {
            this.UpdateTaxationAsync(userId, taxationId, country, state, description, typeId, amount, active, null);
        }
        
        /// <remarks/>
        public void UpdateTaxationAsync(int userId, int taxationId, string country, string state, string description, int typeId, decimal amount, bool active, object userState) {
            if ((this.UpdateTaxationOperationCompleted == null)) {
                this.UpdateTaxationOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateTaxationOperationCompleted);
            }
            this.InvokeAsync("UpdateTaxation", new object[] {
                        userId,
                        taxationId,
                        country,
                        state,
                        description,
                        typeId,
                        amount,
                        active}, this.UpdateTaxationOperationCompleted, userState);
        }
        
        private void OnUpdateTaxationOperationCompleted(object arg) {
            if ((this.UpdateTaxationCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.UpdateTaxationCompleted(this, new UpdateTaxationCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/DeleteTaxation", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int DeleteTaxation(int userId, int taxationId) {
            object[] results = this.Invoke("DeleteTaxation", new object[] {
                        userId,
                        taxationId});
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginDeleteTaxation(int userId, int taxationId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("DeleteTaxation", new object[] {
                        userId,
                        taxationId}, callback, asyncState);
        }
        
        /// <remarks/>
        public int EndDeleteTaxation(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void DeleteTaxationAsync(int userId, int taxationId) {
            this.DeleteTaxationAsync(userId, taxationId, null);
        }
        
        /// <remarks/>
        public void DeleteTaxationAsync(int userId, int taxationId, object userState) {
            if ((this.DeleteTaxationOperationCompleted == null)) {
                this.DeleteTaxationOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteTaxationOperationCompleted);
            }
            this.InvokeAsync("DeleteTaxation", new object[] {
                        userId,
                        taxationId}, this.DeleteTaxationOperationCompleted, userState);
        }
        
        private void OnDeleteTaxationOperationCompleted(object arg) {
            if ((this.DeleteTaxationCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.DeleteTaxationCompleted(this, new DeleteTaxationCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetTaxation", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public Taxation GetTaxation(int userId, int taxationId) {
            object[] results = this.Invoke("GetTaxation", new object[] {
                        userId,
                        taxationId});
            return ((Taxation)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetTaxation(int userId, int taxationId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetTaxation", new object[] {
                        userId,
                        taxationId}, callback, asyncState);
        }
        
        /// <remarks/>
        public Taxation EndGetTaxation(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((Taxation)(results[0]));
        }
        
        /// <remarks/>
        public void GetTaxationAsync(int userId, int taxationId) {
            this.GetTaxationAsync(userId, taxationId, null);
        }
        
        /// <remarks/>
        public void GetTaxationAsync(int userId, int taxationId, object userState) {
            if ((this.GetTaxationOperationCompleted == null)) {
                this.GetTaxationOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetTaxationOperationCompleted);
            }
            this.InvokeAsync("GetTaxation", new object[] {
                        userId,
                        taxationId}, this.GetTaxationOperationCompleted, userState);
        }
        
        private void OnGetTaxationOperationCompleted(object arg) {
            if ((this.GetTaxationCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetTaxationCompleted(this, new GetTaxationCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetTaxationsCount", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int GetTaxationsCount(int userId) {
            object[] results = this.Invoke("GetTaxationsCount", new object[] {
                        userId});
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetTaxationsCount(int userId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetTaxationsCount", new object[] {
                        userId}, callback, asyncState);
        }
        
        /// <remarks/>
        public int EndGetTaxationsCount(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void GetTaxationsCountAsync(int userId) {
            this.GetTaxationsCountAsync(userId, null);
        }
        
        /// <remarks/>
        public void GetTaxationsCountAsync(int userId, object userState) {
            if ((this.GetTaxationsCountOperationCompleted == null)) {
                this.GetTaxationsCountOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetTaxationsCountOperationCompleted);
            }
            this.InvokeAsync("GetTaxationsCount", new object[] {
                        userId}, this.GetTaxationsCountOperationCompleted, userState);
        }
        
        private void OnGetTaxationsCountOperationCompleted(object arg) {
            if ((this.GetTaxationsCountCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetTaxationsCountCompleted(this, new GetTaxationsCountCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetTaxationsPaged", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public Taxation[] GetTaxationsPaged(int userId, int maximumRows, int startRowIndex) {
            object[] results = this.Invoke("GetTaxationsPaged", new object[] {
                        userId,
                        maximumRows,
                        startRowIndex});
            return ((Taxation[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetTaxationsPaged(int userId, int maximumRows, int startRowIndex, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetTaxationsPaged", new object[] {
                        userId,
                        maximumRows,
                        startRowIndex}, callback, asyncState);
        }
        
        /// <remarks/>
        public Taxation[] EndGetTaxationsPaged(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((Taxation[])(results[0]));
        }
        
        /// <remarks/>
        public void GetTaxationsPagedAsync(int userId, int maximumRows, int startRowIndex) {
            this.GetTaxationsPagedAsync(userId, maximumRows, startRowIndex, null);
        }
        
        /// <remarks/>
        public void GetTaxationsPagedAsync(int userId, int maximumRows, int startRowIndex, object userState) {
            if ((this.GetTaxationsPagedOperationCompleted == null)) {
                this.GetTaxationsPagedOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetTaxationsPagedOperationCompleted);
            }
            this.InvokeAsync("GetTaxationsPaged", new object[] {
                        userId,
                        maximumRows,
                        startRowIndex}, this.GetTaxationsPagedOperationCompleted, userState);
        }
        
        private void OnGetTaxationsPagedOperationCompleted(object arg) {
            if ((this.GetTaxationsPagedCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetTaxationsPagedCompleted(this, new GetTaxationsPagedCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetStoreSettings", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public StoreSettings GetStoreSettings(int userId, string settingsName) {
            object[] results = this.Invoke("GetStoreSettings", new object[] {
                        userId,
                        settingsName});
            return ((StoreSettings)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetStoreSettings(int userId, string settingsName, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetStoreSettings", new object[] {
                        userId,
                        settingsName}, callback, asyncState);
        }
        
        /// <remarks/>
        public StoreSettings EndGetStoreSettings(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((StoreSettings)(results[0]));
        }
        
        /// <remarks/>
        public void GetStoreSettingsAsync(int userId, string settingsName) {
            this.GetStoreSettingsAsync(userId, settingsName, null);
        }
        
        /// <remarks/>
        public void GetStoreSettingsAsync(int userId, string settingsName, object userState) {
            if ((this.GetStoreSettingsOperationCompleted == null)) {
                this.GetStoreSettingsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetStoreSettingsOperationCompleted);
            }
            this.InvokeAsync("GetStoreSettings", new object[] {
                        userId,
                        settingsName}, this.GetStoreSettingsOperationCompleted, userState);
        }
        
        private void OnGetStoreSettingsOperationCompleted(object arg) {
            if ((this.GetStoreSettingsCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetStoreSettingsCompleted(this, new GetStoreSettingsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/SetStoreSettings", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int SetStoreSettings(int userId, string settingsName, StoreSettings settings) {
            object[] results = this.Invoke("SetStoreSettings", new object[] {
                        userId,
                        settingsName,
                        settings});
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginSetStoreSettings(int userId, string settingsName, StoreSettings settings, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("SetStoreSettings", new object[] {
                        userId,
                        settingsName,
                        settings}, callback, asyncState);
        }
        
        /// <remarks/>
        public int EndSetStoreSettings(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void SetStoreSettingsAsync(int userId, string settingsName, StoreSettings settings) {
            this.SetStoreSettingsAsync(userId, settingsName, settings, null);
        }
        
        /// <remarks/>
        public void SetStoreSettingsAsync(int userId, string settingsName, StoreSettings settings, object userState) {
            if ((this.SetStoreSettingsOperationCompleted == null)) {
                this.SetStoreSettingsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetStoreSettingsOperationCompleted);
            }
            this.InvokeAsync("SetStoreSettings", new object[] {
                        userId,
                        settingsName,
                        settings}, this.SetStoreSettingsOperationCompleted, userState);
        }
        
        private void OnSetStoreSettingsOperationCompleted(object arg) {
            if ((this.SetStoreSettingsCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.SetStoreSettingsCompleted(this, new SetStoreSettingsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/SetInvoiceNotification", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public RoutineResult SetInvoiceNotification(int userId, string fromEmail, string ccEmail, string subject, string htmlBody, string textBody) {
            object[] results = this.Invoke("SetInvoiceNotification", new object[] {
                        userId,
                        fromEmail,
                        ccEmail,
                        subject,
                        htmlBody,
                        textBody});
            return ((RoutineResult)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginSetInvoiceNotification(int userId, string fromEmail, string ccEmail, string subject, string htmlBody, string textBody, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("SetInvoiceNotification", new object[] {
                        userId,
                        fromEmail,
                        ccEmail,
                        subject,
                        htmlBody,
                        textBody}, callback, asyncState);
        }
        
        /// <remarks/>
        public RoutineResult EndSetInvoiceNotification(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((RoutineResult)(results[0]));
        }
        
        /// <remarks/>
        public void SetInvoiceNotificationAsync(int userId, string fromEmail, string ccEmail, string subject, string htmlBody, string textBody) {
            this.SetInvoiceNotificationAsync(userId, fromEmail, ccEmail, subject, htmlBody, textBody, null);
        }
        
        /// <remarks/>
        public void SetInvoiceNotificationAsync(int userId, string fromEmail, string ccEmail, string subject, string htmlBody, string textBody, object userState) {
            if ((this.SetInvoiceNotificationOperationCompleted == null)) {
                this.SetInvoiceNotificationOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetInvoiceNotificationOperationCompleted);
            }
            this.InvokeAsync("SetInvoiceNotification", new object[] {
                        userId,
                        fromEmail,
                        ccEmail,
                        subject,
                        htmlBody,
                        textBody}, this.SetInvoiceNotificationOperationCompleted, userState);
        }
        
        private void OnSetInvoiceNotificationOperationCompleted(object arg) {
            if ((this.SetInvoiceNotificationCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.SetInvoiceNotificationCompleted(this, new SetInvoiceNotificationCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/SetPaymentReceivedNotification", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public RoutineResult SetPaymentReceivedNotification(int userId, string fromEmail, string ccEmail, string subject, string htmlBody, string textBody) {
            object[] results = this.Invoke("SetPaymentReceivedNotification", new object[] {
                        userId,
                        fromEmail,
                        ccEmail,
                        subject,
                        htmlBody,
                        textBody});
            return ((RoutineResult)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginSetPaymentReceivedNotification(int userId, string fromEmail, string ccEmail, string subject, string htmlBody, string textBody, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("SetPaymentReceivedNotification", new object[] {
                        userId,
                        fromEmail,
                        ccEmail,
                        subject,
                        htmlBody,
                        textBody}, callback, asyncState);
        }
        
        /// <remarks/>
        public RoutineResult EndSetPaymentReceivedNotification(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((RoutineResult)(results[0]));
        }
        
        /// <remarks/>
        public void SetPaymentReceivedNotificationAsync(int userId, string fromEmail, string ccEmail, string subject, string htmlBody, string textBody) {
            this.SetPaymentReceivedNotificationAsync(userId, fromEmail, ccEmail, subject, htmlBody, textBody, null);
        }
        
        /// <remarks/>
        public void SetPaymentReceivedNotificationAsync(int userId, string fromEmail, string ccEmail, string subject, string htmlBody, string textBody, object userState) {
            if ((this.SetPaymentReceivedNotificationOperationCompleted == null)) {
                this.SetPaymentReceivedNotificationOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetPaymentReceivedNotificationOperationCompleted);
            }
            this.InvokeAsync("SetPaymentReceivedNotification", new object[] {
                        userId,
                        fromEmail,
                        ccEmail,
                        subject,
                        htmlBody,
                        textBody}, this.SetPaymentReceivedNotificationOperationCompleted, userState);
        }
        
        private void OnSetPaymentReceivedNotificationOperationCompleted(object arg) {
            if ((this.SetPaymentReceivedNotificationCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.SetPaymentReceivedNotificationCompleted(this, new SetPaymentReceivedNotificationCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/SetServiceActivatedNotification", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public RoutineResult SetServiceActivatedNotification(int userId, string fromEmail, string ccEmail, string subject, string htmlBody, string textBody) {
            object[] results = this.Invoke("SetServiceActivatedNotification", new object[] {
                        userId,
                        fromEmail,
                        ccEmail,
                        subject,
                        htmlBody,
                        textBody});
            return ((RoutineResult)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginSetServiceActivatedNotification(int userId, string fromEmail, string ccEmail, string subject, string htmlBody, string textBody, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("SetServiceActivatedNotification", new object[] {
                        userId,
                        fromEmail,
                        ccEmail,
                        subject,
                        htmlBody,
                        textBody}, callback, asyncState);
        }
        
        /// <remarks/>
        public RoutineResult EndSetServiceActivatedNotification(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((RoutineResult)(results[0]));
        }
        
        /// <remarks/>
        public void SetServiceActivatedNotificationAsync(int userId, string fromEmail, string ccEmail, string subject, string htmlBody, string textBody) {
            this.SetServiceActivatedNotificationAsync(userId, fromEmail, ccEmail, subject, htmlBody, textBody, null);
        }
        
        /// <remarks/>
        public void SetServiceActivatedNotificationAsync(int userId, string fromEmail, string ccEmail, string subject, string htmlBody, string textBody, object userState) {
            if ((this.SetServiceActivatedNotificationOperationCompleted == null)) {
                this.SetServiceActivatedNotificationOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetServiceActivatedNotificationOperationCompleted);
            }
            this.InvokeAsync("SetServiceActivatedNotification", new object[] {
                        userId,
                        fromEmail,
                        ccEmail,
                        subject,
                        htmlBody,
                        textBody}, this.SetServiceActivatedNotificationOperationCompleted, userState);
        }
        
        private void OnSetServiceActivatedNotificationOperationCompleted(object arg) {
            if ((this.SetServiceActivatedNotificationCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.SetServiceActivatedNotificationCompleted(this, new SetServiceActivatedNotificationCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/SetServiceCancelledNotification", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public RoutineResult SetServiceCancelledNotification(int userId, string fromEmail, string ccEmail, string subject, string htmlBody, string textBody) {
            object[] results = this.Invoke("SetServiceCancelledNotification", new object[] {
                        userId,
                        fromEmail,
                        ccEmail,
                        subject,
                        htmlBody,
                        textBody});
            return ((RoutineResult)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginSetServiceCancelledNotification(int userId, string fromEmail, string ccEmail, string subject, string htmlBody, string textBody, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("SetServiceCancelledNotification", new object[] {
                        userId,
                        fromEmail,
                        ccEmail,
                        subject,
                        htmlBody,
                        textBody}, callback, asyncState);
        }
        
        /// <remarks/>
        public RoutineResult EndSetServiceCancelledNotification(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((RoutineResult)(results[0]));
        }
        
        /// <remarks/>
        public void SetServiceCancelledNotificationAsync(int userId, string fromEmail, string ccEmail, string subject, string htmlBody, string textBody) {
            this.SetServiceCancelledNotificationAsync(userId, fromEmail, ccEmail, subject, htmlBody, textBody, null);
        }
        
        /// <remarks/>
        public void SetServiceCancelledNotificationAsync(int userId, string fromEmail, string ccEmail, string subject, string htmlBody, string textBody, object userState) {
            if ((this.SetServiceCancelledNotificationOperationCompleted == null)) {
                this.SetServiceCancelledNotificationOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetServiceCancelledNotificationOperationCompleted);
            }
            this.InvokeAsync("SetServiceCancelledNotification", new object[] {
                        userId,
                        fromEmail,
                        ccEmail,
                        subject,
                        htmlBody,
                        textBody}, this.SetServiceCancelledNotificationOperationCompleted, userState);
        }
        
        private void OnSetServiceCancelledNotificationOperationCompleted(object arg) {
            if ((this.SetServiceCancelledNotificationCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.SetServiceCancelledNotificationCompleted(this, new SetServiceCancelledNotificationCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/SetServiceSuspendedNotification", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public RoutineResult SetServiceSuspendedNotification(int userId, string fromEmail, string ccEmail, string subject, string htmlBody, string textBody) {
            object[] results = this.Invoke("SetServiceSuspendedNotification", new object[] {
                        userId,
                        fromEmail,
                        ccEmail,
                        subject,
                        htmlBody,
                        textBody});
            return ((RoutineResult)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginSetServiceSuspendedNotification(int userId, string fromEmail, string ccEmail, string subject, string htmlBody, string textBody, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("SetServiceSuspendedNotification", new object[] {
                        userId,
                        fromEmail,
                        ccEmail,
                        subject,
                        htmlBody,
                        textBody}, callback, asyncState);
        }
        
        /// <remarks/>
        public RoutineResult EndSetServiceSuspendedNotification(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((RoutineResult)(results[0]));
        }
        
        /// <remarks/>
        public void SetServiceSuspendedNotificationAsync(int userId, string fromEmail, string ccEmail, string subject, string htmlBody, string textBody) {
            this.SetServiceSuspendedNotificationAsync(userId, fromEmail, ccEmail, subject, htmlBody, textBody, null);
        }
        
        /// <remarks/>
        public void SetServiceSuspendedNotificationAsync(int userId, string fromEmail, string ccEmail, string subject, string htmlBody, string textBody, object userState) {
            if ((this.SetServiceSuspendedNotificationOperationCompleted == null)) {
                this.SetServiceSuspendedNotificationOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetServiceSuspendedNotificationOperationCompleted);
            }
            this.InvokeAsync("SetServiceSuspendedNotification", new object[] {
                        userId,
                        fromEmail,
                        ccEmail,
                        subject,
                        htmlBody,
                        textBody}, this.SetServiceSuspendedNotificationOperationCompleted, userState);
        }
        
        private void OnSetServiceSuspendedNotificationOperationCompleted(object arg) {
            if ((this.SetServiceSuspendedNotificationCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.SetServiceSuspendedNotificationCompleted(this, new SetServiceSuspendedNotificationCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/IsSupportedPluginActive", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public bool IsSupportedPluginActive(int resellerId, int pluginId) {
            object[] results = this.Invoke("IsSupportedPluginActive", new object[] {
                        resellerId,
                        pluginId});
            return ((bool)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginIsSupportedPluginActive(int resellerId, int pluginId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("IsSupportedPluginActive", new object[] {
                        resellerId,
                        pluginId}, callback, asyncState);
        }
        
        /// <remarks/>
        public bool EndIsSupportedPluginActive(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((bool)(results[0]));
        }
        
        /// <remarks/>
        public void IsSupportedPluginActiveAsync(int resellerId, int pluginId) {
            this.IsSupportedPluginActiveAsync(resellerId, pluginId, null);
        }
        
        /// <remarks/>
        public void IsSupportedPluginActiveAsync(int resellerId, int pluginId, object userState) {
            if ((this.IsSupportedPluginActiveOperationCompleted == null)) {
                this.IsSupportedPluginActiveOperationCompleted = new System.Threading.SendOrPostCallback(this.OnIsSupportedPluginActiveOperationCompleted);
            }
            this.InvokeAsync("IsSupportedPluginActive", new object[] {
                        resellerId,
                        pluginId}, this.IsSupportedPluginActiveOperationCompleted, userState);
        }
        
        private void OnIsSupportedPluginActiveOperationCompleted(object arg) {
            if ((this.IsSupportedPluginActiveCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.IsSupportedPluginActiveCompleted(this, new IsSupportedPluginActiveCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/IsInvoiceProcessed", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public bool IsInvoiceProcessed(int invoiceId) {
            object[] results = this.Invoke("IsInvoiceProcessed", new object[] {
                        invoiceId});
            return ((bool)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginIsInvoiceProcessed(int invoiceId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("IsInvoiceProcessed", new object[] {
                        invoiceId}, callback, asyncState);
        }
        
        /// <remarks/>
        public bool EndIsInvoiceProcessed(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((bool)(results[0]));
        }
        
        /// <remarks/>
        public void IsInvoiceProcessedAsync(int invoiceId) {
            this.IsInvoiceProcessedAsync(invoiceId, null);
        }
        
        /// <remarks/>
        public void IsInvoiceProcessedAsync(int invoiceId, object userState) {
            if ((this.IsInvoiceProcessedOperationCompleted == null)) {
                this.IsInvoiceProcessedOperationCompleted = new System.Threading.SendOrPostCallback(this.OnIsInvoiceProcessedOperationCompleted);
            }
            this.InvokeAsync("IsInvoiceProcessed", new object[] {
                        invoiceId}, this.IsInvoiceProcessedOperationCompleted, userState);
        }
        
        private void OnIsInvoiceProcessedOperationCompleted(object arg) {
            if ((this.IsInvoiceProcessedCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.IsInvoiceProcessedCompleted(this, new IsInvoiceProcessedCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetCustomersPaymentsCount", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int GetCustomersPaymentsCount(int userId, bool isReseller) {
            object[] results = this.Invoke("GetCustomersPaymentsCount", new object[] {
                        userId,
                        isReseller});
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetCustomersPaymentsCount(int userId, bool isReseller, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetCustomersPaymentsCount", new object[] {
                        userId,
                        isReseller}, callback, asyncState);
        }
        
        /// <remarks/>
        public int EndGetCustomersPaymentsCount(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void GetCustomersPaymentsCountAsync(int userId, bool isReseller) {
            this.GetCustomersPaymentsCountAsync(userId, isReseller, null);
        }
        
        /// <remarks/>
        public void GetCustomersPaymentsCountAsync(int userId, bool isReseller, object userState) {
            if ((this.GetCustomersPaymentsCountOperationCompleted == null)) {
                this.GetCustomersPaymentsCountOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetCustomersPaymentsCountOperationCompleted);
            }
            this.InvokeAsync("GetCustomersPaymentsCount", new object[] {
                        userId,
                        isReseller}, this.GetCustomersPaymentsCountOperationCompleted, userState);
        }
        
        private void OnGetCustomersPaymentsCountOperationCompleted(object arg) {
            if ((this.GetCustomersPaymentsCountCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetCustomersPaymentsCountCompleted(this, new GetCustomersPaymentsCountCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetCustomersPaymentsPaged", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public CustomerPayment[] GetCustomersPaymentsPaged(int userId, bool isReseller, int maximumRows, int startRowIndex) {
            object[] results = this.Invoke("GetCustomersPaymentsPaged", new object[] {
                        userId,
                        isReseller,
                        maximumRows,
                        startRowIndex});
            return ((CustomerPayment[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetCustomersPaymentsPaged(int userId, bool isReseller, int maximumRows, int startRowIndex, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetCustomersPaymentsPaged", new object[] {
                        userId,
                        isReseller,
                        maximumRows,
                        startRowIndex}, callback, asyncState);
        }
        
        /// <remarks/>
        public CustomerPayment[] EndGetCustomersPaymentsPaged(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((CustomerPayment[])(results[0]));
        }
        
        /// <remarks/>
        public void GetCustomersPaymentsPagedAsync(int userId, bool isReseller, int maximumRows, int startRowIndex) {
            this.GetCustomersPaymentsPagedAsync(userId, isReseller, maximumRows, startRowIndex, null);
        }
        
        /// <remarks/>
        public void GetCustomersPaymentsPagedAsync(int userId, bool isReseller, int maximumRows, int startRowIndex, object userState) {
            if ((this.GetCustomersPaymentsPagedOperationCompleted == null)) {
                this.GetCustomersPaymentsPagedOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetCustomersPaymentsPagedOperationCompleted);
            }
            this.InvokeAsync("GetCustomersPaymentsPaged", new object[] {
                        userId,
                        isReseller,
                        maximumRows,
                        startRowIndex}, this.GetCustomersPaymentsPagedOperationCompleted, userState);
        }
        
        private void OnGetCustomersPaymentsPagedOperationCompleted(object arg) {
            if ((this.GetCustomersPaymentsPagedCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetCustomersPaymentsPagedCompleted(this, new GetCustomersPaymentsPagedCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/DeleteCustomerPayment", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int DeleteCustomerPayment(int paymentId) {
            object[] results = this.Invoke("DeleteCustomerPayment", new object[] {
                        paymentId});
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginDeleteCustomerPayment(int paymentId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("DeleteCustomerPayment", new object[] {
                        paymentId}, callback, asyncState);
        }
        
        /// <remarks/>
        public int EndDeleteCustomerPayment(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void DeleteCustomerPaymentAsync(int paymentId) {
            this.DeleteCustomerPaymentAsync(paymentId, null);
        }
        
        /// <remarks/>
        public void DeleteCustomerPaymentAsync(int paymentId, object userState) {
            if ((this.DeleteCustomerPaymentOperationCompleted == null)) {
                this.DeleteCustomerPaymentOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteCustomerPaymentOperationCompleted);
            }
            this.InvokeAsync("DeleteCustomerPayment", new object[] {
                        paymentId}, this.DeleteCustomerPaymentOperationCompleted, userState);
        }
        
        private void OnDeleteCustomerPaymentOperationCompleted(object arg) {
            if ((this.DeleteCustomerPaymentCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.DeleteCustomerPaymentCompleted(this, new DeleteCustomerPaymentCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/ChangeCustomerPaymentStatus", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int ChangeCustomerPaymentStatus(int paymentId, TransactionStatus status) {
            object[] results = this.Invoke("ChangeCustomerPaymentStatus", new object[] {
                        paymentId,
                        status});
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginChangeCustomerPaymentStatus(int paymentId, TransactionStatus status, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("ChangeCustomerPaymentStatus", new object[] {
                        paymentId,
                        status}, callback, asyncState);
        }
        
        /// <remarks/>
        public int EndChangeCustomerPaymentStatus(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void ChangeCustomerPaymentStatusAsync(int paymentId, TransactionStatus status) {
            this.ChangeCustomerPaymentStatusAsync(paymentId, status, null);
        }
        
        /// <remarks/>
        public void ChangeCustomerPaymentStatusAsync(int paymentId, TransactionStatus status, object userState) {
            if ((this.ChangeCustomerPaymentStatusOperationCompleted == null)) {
                this.ChangeCustomerPaymentStatusOperationCompleted = new System.Threading.SendOrPostCallback(this.OnChangeCustomerPaymentStatusOperationCompleted);
            }
            this.InvokeAsync("ChangeCustomerPaymentStatus", new object[] {
                        paymentId,
                        status}, this.ChangeCustomerPaymentStatusOperationCompleted, userState);
        }
        
        private void OnChangeCustomerPaymentStatusOperationCompleted(object arg) {
            if ((this.ChangeCustomerPaymentStatusCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.ChangeCustomerPaymentStatusCompleted(this, new ChangeCustomerPaymentStatusCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetCustomersInvoicesCount", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int GetCustomersInvoicesCount(int userId, bool isReseller) {
            object[] results = this.Invoke("GetCustomersInvoicesCount", new object[] {
                        userId,
                        isReseller});
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetCustomersInvoicesCount(int userId, bool isReseller, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetCustomersInvoicesCount", new object[] {
                        userId,
                        isReseller}, callback, asyncState);
        }
        
        /// <remarks/>
        public int EndGetCustomersInvoicesCount(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void GetCustomersInvoicesCountAsync(int userId, bool isReseller) {
            this.GetCustomersInvoicesCountAsync(userId, isReseller, null);
        }
        
        /// <remarks/>
        public void GetCustomersInvoicesCountAsync(int userId, bool isReseller, object userState) {
            if ((this.GetCustomersInvoicesCountOperationCompleted == null)) {
                this.GetCustomersInvoicesCountOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetCustomersInvoicesCountOperationCompleted);
            }
            this.InvokeAsync("GetCustomersInvoicesCount", new object[] {
                        userId,
                        isReseller}, this.GetCustomersInvoicesCountOperationCompleted, userState);
        }
        
        private void OnGetCustomersInvoicesCountOperationCompleted(object arg) {
            if ((this.GetCustomersInvoicesCountCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetCustomersInvoicesCountCompleted(this, new GetCustomersInvoicesCountCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetCustomersInvoicesPaged", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public Invoice[] GetCustomersInvoicesPaged(int userId, bool isReseller, int maximumRows, int startRowIndex) {
            object[] results = this.Invoke("GetCustomersInvoicesPaged", new object[] {
                        userId,
                        isReseller,
                        maximumRows,
                        startRowIndex});
            return ((Invoice[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetCustomersInvoicesPaged(int userId, bool isReseller, int maximumRows, int startRowIndex, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetCustomersInvoicesPaged", new object[] {
                        userId,
                        isReseller,
                        maximumRows,
                        startRowIndex}, callback, asyncState);
        }
        
        /// <remarks/>
        public Invoice[] EndGetCustomersInvoicesPaged(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((Invoice[])(results[0]));
        }
        
        /// <remarks/>
        public void GetCustomersInvoicesPagedAsync(int userId, bool isReseller, int maximumRows, int startRowIndex) {
            this.GetCustomersInvoicesPagedAsync(userId, isReseller, maximumRows, startRowIndex, null);
        }
        
        /// <remarks/>
        public void GetCustomersInvoicesPagedAsync(int userId, bool isReseller, int maximumRows, int startRowIndex, object userState) {
            if ((this.GetCustomersInvoicesPagedOperationCompleted == null)) {
                this.GetCustomersInvoicesPagedOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetCustomersInvoicesPagedOperationCompleted);
            }
            this.InvokeAsync("GetCustomersInvoicesPaged", new object[] {
                        userId,
                        isReseller,
                        maximumRows,
                        startRowIndex}, this.GetCustomersInvoicesPagedOperationCompleted, userState);
        }
        
        private void OnGetCustomersInvoicesPagedOperationCompleted(object arg) {
            if ((this.GetCustomersInvoicesPagedCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetCustomersInvoicesPagedCompleted(this, new GetCustomersInvoicesPagedCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetCustomerInvoiceFormatted", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public string GetCustomerInvoiceFormatted(int invoiceId, string cultureName) {
            object[] results = this.Invoke("GetCustomerInvoiceFormatted", new object[] {
                        invoiceId,
                        cultureName});
            return ((string)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetCustomerInvoiceFormatted(int invoiceId, string cultureName, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetCustomerInvoiceFormatted", new object[] {
                        invoiceId,
                        cultureName}, callback, asyncState);
        }
        
        /// <remarks/>
        public string EndGetCustomerInvoiceFormatted(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((string)(results[0]));
        }
        
        /// <remarks/>
        public void GetCustomerInvoiceFormattedAsync(int invoiceId, string cultureName) {
            this.GetCustomerInvoiceFormattedAsync(invoiceId, cultureName, null);
        }
        
        /// <remarks/>
        public void GetCustomerInvoiceFormattedAsync(int invoiceId, string cultureName, object userState) {
            if ((this.GetCustomerInvoiceFormattedOperationCompleted == null)) {
                this.GetCustomerInvoiceFormattedOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetCustomerInvoiceFormattedOperationCompleted);
            }
            this.InvokeAsync("GetCustomerInvoiceFormatted", new object[] {
                        invoiceId,
                        cultureName}, this.GetCustomerInvoiceFormattedOperationCompleted, userState);
        }
        
        private void OnGetCustomerInvoiceFormattedOperationCompleted(object arg) {
            if ((this.GetCustomerInvoiceFormattedCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetCustomerInvoiceFormattedCompleted(this, new GetCustomerInvoiceFormattedCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetCustomerInvoice", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public Invoice GetCustomerInvoice(int invoiceId) {
            object[] results = this.Invoke("GetCustomerInvoice", new object[] {
                        invoiceId});
            return ((Invoice)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetCustomerInvoice(int invoiceId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetCustomerInvoice", new object[] {
                        invoiceId}, callback, asyncState);
        }
        
        /// <remarks/>
        public Invoice EndGetCustomerInvoice(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((Invoice)(results[0]));
        }
        
        /// <remarks/>
        public void GetCustomerInvoiceAsync(int invoiceId) {
            this.GetCustomerInvoiceAsync(invoiceId, null);
        }
        
        /// <remarks/>
        public void GetCustomerInvoiceAsync(int invoiceId, object userState) {
            if ((this.GetCustomerInvoiceOperationCompleted == null)) {
                this.GetCustomerInvoiceOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetCustomerInvoiceOperationCompleted);
            }
            this.InvokeAsync("GetCustomerInvoice", new object[] {
                        invoiceId}, this.GetCustomerInvoiceOperationCompleted, userState);
        }
        
        private void OnGetCustomerInvoiceOperationCompleted(object arg) {
            if ((this.GetCustomerInvoiceCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetCustomerInvoiceCompleted(this, new GetCustomerInvoiceCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/AddCustomerPayment", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int AddCustomerPayment(string contractId, int invoiceId, string transactionId, decimal amount, string currency, string methodName, TransactionStatus status) {
            object[] results = this.Invoke("AddCustomerPayment", new object[] {
                        contractId,
                        invoiceId,
                        transactionId,
                        amount,
                        currency,
                        methodName,
                        status});
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginAddCustomerPayment(string contractId, int invoiceId, string transactionId, decimal amount, string currency, string methodName, TransactionStatus status, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("AddCustomerPayment", new object[] {
                        contractId,
                        invoiceId,
                        transactionId,
                        amount,
                        currency,
                        methodName,
                        status}, callback, asyncState);
        }
        
        /// <remarks/>
        public int EndAddCustomerPayment(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void AddCustomerPaymentAsync(string contractId, int invoiceId, string transactionId, decimal amount, string currency, string methodName, TransactionStatus status) {
            this.AddCustomerPaymentAsync(contractId, invoiceId, transactionId, amount, currency, methodName, status, null);
        }
        
        /// <remarks/>
        public void AddCustomerPaymentAsync(string contractId, int invoiceId, string transactionId, decimal amount, string currency, string methodName, TransactionStatus status, object userState) {
            if ((this.AddCustomerPaymentOperationCompleted == null)) {
                this.AddCustomerPaymentOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddCustomerPaymentOperationCompleted);
            }
            this.InvokeAsync("AddCustomerPayment", new object[] {
                        contractId,
                        invoiceId,
                        transactionId,
                        amount,
                        currency,
                        methodName,
                        status}, this.AddCustomerPaymentOperationCompleted, userState);
        }
        
        private void OnAddCustomerPaymentOperationCompleted(object arg) {
            if ((this.AddCustomerPaymentCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.AddCustomerPaymentCompleted(this, new AddCustomerPaymentCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetCustomersServicesCount", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int GetCustomersServicesCount(int userId, bool isReseller) {
            object[] results = this.Invoke("GetCustomersServicesCount", new object[] {
                        userId,
                        isReseller});
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetCustomersServicesCount(int userId, bool isReseller, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetCustomersServicesCount", new object[] {
                        userId,
                        isReseller}, callback, asyncState);
        }
        
        /// <remarks/>
        public int EndGetCustomersServicesCount(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void GetCustomersServicesCountAsync(int userId, bool isReseller) {
            this.GetCustomersServicesCountAsync(userId, isReseller, null);
        }
        
        /// <remarks/>
        public void GetCustomersServicesCountAsync(int userId, bool isReseller, object userState) {
            if ((this.GetCustomersServicesCountOperationCompleted == null)) {
                this.GetCustomersServicesCountOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetCustomersServicesCountOperationCompleted);
            }
            this.InvokeAsync("GetCustomersServicesCount", new object[] {
                        userId,
                        isReseller}, this.GetCustomersServicesCountOperationCompleted, userState);
        }
        
        private void OnGetCustomersServicesCountOperationCompleted(object arg) {
            if ((this.GetCustomersServicesCountCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetCustomersServicesCountCompleted(this, new GetCustomersServicesCountCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetCustomersServicesPaged", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public Service[] GetCustomersServicesPaged(int userId, bool isReseller, int maximumRows, int startRowIndex) {
            object[] results = this.Invoke("GetCustomersServicesPaged", new object[] {
                        userId,
                        isReseller,
                        maximumRows,
                        startRowIndex});
            return ((Service[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetCustomersServicesPaged(int userId, bool isReseller, int maximumRows, int startRowIndex, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetCustomersServicesPaged", new object[] {
                        userId,
                        isReseller,
                        maximumRows,
                        startRowIndex}, callback, asyncState);
        }
        
        /// <remarks/>
        public Service[] EndGetCustomersServicesPaged(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((Service[])(results[0]));
        }
        
        /// <remarks/>
        public void GetCustomersServicesPagedAsync(int userId, bool isReseller, int maximumRows, int startRowIndex) {
            this.GetCustomersServicesPagedAsync(userId, isReseller, maximumRows, startRowIndex, null);
        }
        
        /// <remarks/>
        public void GetCustomersServicesPagedAsync(int userId, bool isReseller, int maximumRows, int startRowIndex, object userState) {
            if ((this.GetCustomersServicesPagedOperationCompleted == null)) {
                this.GetCustomersServicesPagedOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetCustomersServicesPagedOperationCompleted);
            }
            this.InvokeAsync("GetCustomersServicesPaged", new object[] {
                        userId,
                        isReseller,
                        maximumRows,
                        startRowIndex}, this.GetCustomersServicesPagedOperationCompleted, userState);
        }
        
        private void OnGetCustomersServicesPagedOperationCompleted(object arg) {
            if ((this.GetCustomersServicesPagedCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetCustomersServicesPagedCompleted(this, new GetCustomersServicesPagedCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetHostingPackageService", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public HostingPackageSvc GetHostingPackageService(int serviceId) {
            object[] results = this.Invoke("GetHostingPackageService", new object[] {
                        serviceId});
            return ((HostingPackageSvc)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetHostingPackageService(int serviceId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetHostingPackageService", new object[] {
                        serviceId}, callback, asyncState);
        }
        
        /// <remarks/>
        public HostingPackageSvc EndGetHostingPackageService(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((HostingPackageSvc)(results[0]));
        }
        
        /// <remarks/>
        public void GetHostingPackageServiceAsync(int serviceId) {
            this.GetHostingPackageServiceAsync(serviceId, null);
        }
        
        /// <remarks/>
        public void GetHostingPackageServiceAsync(int serviceId, object userState) {
            if ((this.GetHostingPackageServiceOperationCompleted == null)) {
                this.GetHostingPackageServiceOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetHostingPackageServiceOperationCompleted);
            }
            this.InvokeAsync("GetHostingPackageService", new object[] {
                        serviceId}, this.GetHostingPackageServiceOperationCompleted, userState);
        }
        
        private void OnGetHostingPackageServiceOperationCompleted(object arg) {
            if ((this.GetHostingPackageServiceCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetHostingPackageServiceCompleted(this, new GetHostingPackageServiceCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetHostingAddonService", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public HostingAddonSvc GetHostingAddonService(int serviceId) {
            object[] results = this.Invoke("GetHostingAddonService", new object[] {
                        serviceId});
            return ((HostingAddonSvc)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetHostingAddonService(int serviceId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetHostingAddonService", new object[] {
                        serviceId}, callback, asyncState);
        }
        
        /// <remarks/>
        public HostingAddonSvc EndGetHostingAddonService(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((HostingAddonSvc)(results[0]));
        }
        
        /// <remarks/>
        public void GetHostingAddonServiceAsync(int serviceId) {
            this.GetHostingAddonServiceAsync(serviceId, null);
        }
        
        /// <remarks/>
        public void GetHostingAddonServiceAsync(int serviceId, object userState) {
            if ((this.GetHostingAddonServiceOperationCompleted == null)) {
                this.GetHostingAddonServiceOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetHostingAddonServiceOperationCompleted);
            }
            this.InvokeAsync("GetHostingAddonService", new object[] {
                        serviceId}, this.GetHostingAddonServiceOperationCompleted, userState);
        }
        
        private void OnGetHostingAddonServiceOperationCompleted(object arg) {
            if ((this.GetHostingAddonServiceCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetHostingAddonServiceCompleted(this, new GetHostingAddonServiceCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetDomainNameService", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public DomainNameSvc GetDomainNameService(int serviceId) {
            object[] results = this.Invoke("GetDomainNameService", new object[] {
                        serviceId});
            return ((DomainNameSvc)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetDomainNameService(int serviceId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetDomainNameService", new object[] {
                        serviceId}, callback, asyncState);
        }
        
        /// <remarks/>
        public DomainNameSvc EndGetDomainNameService(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((DomainNameSvc)(results[0]));
        }
        
        /// <remarks/>
        public void GetDomainNameServiceAsync(int serviceId) {
            this.GetDomainNameServiceAsync(serviceId, null);
        }
        
        /// <remarks/>
        public void GetDomainNameServiceAsync(int serviceId, object userState) {
            if ((this.GetDomainNameServiceOperationCompleted == null)) {
                this.GetDomainNameServiceOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetDomainNameServiceOperationCompleted);
            }
            this.InvokeAsync("GetDomainNameService", new object[] {
                        serviceId}, this.GetDomainNameServiceOperationCompleted, userState);
        }
        
        private void OnGetDomainNameServiceOperationCompleted(object arg) {
            if ((this.GetDomainNameServiceCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetDomainNameServiceCompleted(this, new GetDomainNameServiceCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetRawCustomerService", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public Service GetRawCustomerService(int serviceId) {
            object[] results = this.Invoke("GetRawCustomerService", new object[] {
                        serviceId});
            return ((Service)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetRawCustomerService(int serviceId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetRawCustomerService", new object[] {
                        serviceId}, callback, asyncState);
        }
        
        /// <remarks/>
        public Service EndGetRawCustomerService(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((Service)(results[0]));
        }
        
        /// <remarks/>
        public void GetRawCustomerServiceAsync(int serviceId) {
            this.GetRawCustomerServiceAsync(serviceId, null);
        }
        
        /// <remarks/>
        public void GetRawCustomerServiceAsync(int serviceId, object userState) {
            if ((this.GetRawCustomerServiceOperationCompleted == null)) {
                this.GetRawCustomerServiceOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetRawCustomerServiceOperationCompleted);
            }
            this.InvokeAsync("GetRawCustomerService", new object[] {
                        serviceId}, this.GetRawCustomerServiceOperationCompleted, userState);
        }
        
        private void OnGetRawCustomerServiceOperationCompleted(object arg) {
            if ((this.GetRawCustomerServiceCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetRawCustomerServiceCompleted(this, new GetRawCustomerServiceCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetServiceHistory", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public ServiceHistoryRecord[] GetServiceHistory(int serviceId) {
            object[] results = this.Invoke("GetServiceHistory", new object[] {
                        serviceId});
            return ((ServiceHistoryRecord[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetServiceHistory(int serviceId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetServiceHistory", new object[] {
                        serviceId}, callback, asyncState);
        }
        
        /// <remarks/>
        public ServiceHistoryRecord[] EndGetServiceHistory(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((ServiceHistoryRecord[])(results[0]));
        }
        
        /// <remarks/>
        public void GetServiceHistoryAsync(int serviceId) {
            this.GetServiceHistoryAsync(serviceId, null);
        }
        
        /// <remarks/>
        public void GetServiceHistoryAsync(int serviceId, object userState) {
            if ((this.GetServiceHistoryOperationCompleted == null)) {
                this.GetServiceHistoryOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetServiceHistoryOperationCompleted);
            }
            this.InvokeAsync("GetServiceHistory", new object[] {
                        serviceId}, this.GetServiceHistoryOperationCompleted, userState);
        }
        
        private void OnGetServiceHistoryOperationCompleted(object arg) {
            if ((this.GetServiceHistoryCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetServiceHistoryCompleted(this, new GetServiceHistoryCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/ActivateService", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public GenericSvcResult ActivateService(int serviceId, bool sendMail) {
            object[] results = this.Invoke("ActivateService", new object[] {
                        serviceId,
                        sendMail});
            return ((GenericSvcResult)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginActivateService(int serviceId, bool sendMail, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("ActivateService", new object[] {
                        serviceId,
                        sendMail}, callback, asyncState);
        }
        
        /// <remarks/>
        public GenericSvcResult EndActivateService(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((GenericSvcResult)(results[0]));
        }
        
        /// <remarks/>
        public void ActivateServiceAsync(int serviceId, bool sendMail) {
            this.ActivateServiceAsync(serviceId, sendMail, null);
        }
        
        /// <remarks/>
        public void ActivateServiceAsync(int serviceId, bool sendMail, object userState) {
            if ((this.ActivateServiceOperationCompleted == null)) {
                this.ActivateServiceOperationCompleted = new System.Threading.SendOrPostCallback(this.OnActivateServiceOperationCompleted);
            }
            this.InvokeAsync("ActivateService", new object[] {
                        serviceId,
                        sendMail}, this.ActivateServiceOperationCompleted, userState);
        }
        
        private void OnActivateServiceOperationCompleted(object arg) {
            if ((this.ActivateServiceCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.ActivateServiceCompleted(this, new ActivateServiceCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/SuspendService", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public GenericSvcResult SuspendService(int serviceId, bool sendMail) {
            object[] results = this.Invoke("SuspendService", new object[] {
                        serviceId,
                        sendMail});
            return ((GenericSvcResult)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginSuspendService(int serviceId, bool sendMail, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("SuspendService", new object[] {
                        serviceId,
                        sendMail}, callback, asyncState);
        }
        
        /// <remarks/>
        public GenericSvcResult EndSuspendService(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((GenericSvcResult)(results[0]));
        }
        
        /// <remarks/>
        public void SuspendServiceAsync(int serviceId, bool sendMail) {
            this.SuspendServiceAsync(serviceId, sendMail, null);
        }
        
        /// <remarks/>
        public void SuspendServiceAsync(int serviceId, bool sendMail, object userState) {
            if ((this.SuspendServiceOperationCompleted == null)) {
                this.SuspendServiceOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSuspendServiceOperationCompleted);
            }
            this.InvokeAsync("SuspendService", new object[] {
                        serviceId,
                        sendMail}, this.SuspendServiceOperationCompleted, userState);
        }
        
        private void OnSuspendServiceOperationCompleted(object arg) {
            if ((this.SuspendServiceCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.SuspendServiceCompleted(this, new SuspendServiceCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/CancelService", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public GenericSvcResult CancelService(int serviceId, bool sendMail) {
            object[] results = this.Invoke("CancelService", new object[] {
                        serviceId,
                        sendMail});
            return ((GenericSvcResult)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginCancelService(int serviceId, bool sendMail, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("CancelService", new object[] {
                        serviceId,
                        sendMail}, callback, asyncState);
        }
        
        /// <remarks/>
        public GenericSvcResult EndCancelService(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((GenericSvcResult)(results[0]));
        }
        
        /// <remarks/>
        public void CancelServiceAsync(int serviceId, bool sendMail) {
            this.CancelServiceAsync(serviceId, sendMail, null);
        }
        
        /// <remarks/>
        public void CancelServiceAsync(int serviceId, bool sendMail, object userState) {
            if ((this.CancelServiceOperationCompleted == null)) {
                this.CancelServiceOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCancelServiceOperationCompleted);
            }
            this.InvokeAsync("CancelService", new object[] {
                        serviceId,
                        sendMail}, this.CancelServiceOperationCompleted, userState);
        }
        
        private void OnCancelServiceOperationCompleted(object arg) {
            if ((this.CancelServiceCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.CancelServiceCompleted(this, new CancelServiceCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/VoidCustomerInvoice", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public void VoidCustomerInvoice(int invoiceId) {
            this.Invoke("VoidCustomerInvoice", new object[] {
                        invoiceId});
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginVoidCustomerInvoice(int invoiceId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("VoidCustomerInvoice", new object[] {
                        invoiceId}, callback, asyncState);
        }
        
        /// <remarks/>
        public void EndVoidCustomerInvoice(System.IAsyncResult asyncResult) {
            this.EndInvoke(asyncResult);
        }
        
        /// <remarks/>
        public void VoidCustomerInvoiceAsync(int invoiceId) {
            this.VoidCustomerInvoiceAsync(invoiceId, null);
        }
        
        /// <remarks/>
        public void VoidCustomerInvoiceAsync(int invoiceId, object userState) {
            if ((this.VoidCustomerInvoiceOperationCompleted == null)) {
                this.VoidCustomerInvoiceOperationCompleted = new System.Threading.SendOrPostCallback(this.OnVoidCustomerInvoiceOperationCompleted);
            }
            this.InvokeAsync("VoidCustomerInvoice", new object[] {
                        invoiceId}, this.VoidCustomerInvoiceOperationCompleted, userState);
        }
        
        private void OnVoidCustomerInvoiceOperationCompleted(object arg) {
            if ((this.VoidCustomerInvoiceCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.VoidCustomerInvoiceCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/ActivateInvoice", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public GenericSvcResult[] ActivateInvoice(int invoiceId) {
            object[] results = this.Invoke("ActivateInvoice", new object[] {
                        invoiceId});
            return ((GenericSvcResult[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginActivateInvoice(int invoiceId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("ActivateInvoice", new object[] {
                        invoiceId}, callback, asyncState);
        }
        
        /// <remarks/>
        public GenericSvcResult[] EndActivateInvoice(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((GenericSvcResult[])(results[0]));
        }
        
        /// <remarks/>
        public void ActivateInvoiceAsync(int invoiceId) {
            this.ActivateInvoiceAsync(invoiceId, null);
        }
        
        /// <remarks/>
        public void ActivateInvoiceAsync(int invoiceId, object userState) {
            if ((this.ActivateInvoiceOperationCompleted == null)) {
                this.ActivateInvoiceOperationCompleted = new System.Threading.SendOrPostCallback(this.OnActivateInvoiceOperationCompleted);
            }
            this.InvokeAsync("ActivateInvoice", new object[] {
                        invoiceId}, this.ActivateInvoiceOperationCompleted, userState);
        }
        
        private void OnActivateInvoiceOperationCompleted(object arg) {
            if ((this.ActivateInvoiceCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.ActivateInvoiceCompleted(this, new ActivateInvoiceCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/DeleteCustomerService", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int DeleteCustomerService(int serviceId) {
            object[] results = this.Invoke("DeleteCustomerService", new object[] {
                        serviceId});
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginDeleteCustomerService(int serviceId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("DeleteCustomerService", new object[] {
                        serviceId}, callback, asyncState);
        }
        
        /// <remarks/>
        public int EndDeleteCustomerService(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void DeleteCustomerServiceAsync(int serviceId) {
            this.DeleteCustomerServiceAsync(serviceId, null);
        }
        
        /// <remarks/>
        public void DeleteCustomerServiceAsync(int serviceId, object userState) {
            if ((this.DeleteCustomerServiceOperationCompleted == null)) {
                this.DeleteCustomerServiceOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteCustomerServiceOperationCompleted);
            }
            this.InvokeAsync("DeleteCustomerService", new object[] {
                        serviceId}, this.DeleteCustomerServiceOperationCompleted, userState);
        }
        
        private void OnDeleteCustomerServiceOperationCompleted(object arg) {
            if ((this.DeleteCustomerServiceCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.DeleteCustomerServiceCompleted(this, new DeleteCustomerServiceCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/AddCategory", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int AddCategory(int userId, string categoryName, string categorySku, int parentId, string shortDescription, string fullDescription) {
            object[] results = this.Invoke("AddCategory", new object[] {
                        userId,
                        categoryName,
                        categorySku,
                        parentId,
                        shortDescription,
                        fullDescription});
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginAddCategory(int userId, string categoryName, string categorySku, int parentId, string shortDescription, string fullDescription, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("AddCategory", new object[] {
                        userId,
                        categoryName,
                        categorySku,
                        parentId,
                        shortDescription,
                        fullDescription}, callback, asyncState);
        }
        
        /// <remarks/>
        public int EndAddCategory(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void AddCategoryAsync(int userId, string categoryName, string categorySku, int parentId, string shortDescription, string fullDescription) {
            this.AddCategoryAsync(userId, categoryName, categorySku, parentId, shortDescription, fullDescription, null);
        }
        
        /// <remarks/>
        public void AddCategoryAsync(int userId, string categoryName, string categorySku, int parentId, string shortDescription, string fullDescription, object userState) {
            if ((this.AddCategoryOperationCompleted == null)) {
                this.AddCategoryOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddCategoryOperationCompleted);
            }
            this.InvokeAsync("AddCategory", new object[] {
                        userId,
                        categoryName,
                        categorySku,
                        parentId,
                        shortDescription,
                        fullDescription}, this.AddCategoryOperationCompleted, userState);
        }
        
        private void OnAddCategoryOperationCompleted(object arg) {
            if ((this.AddCategoryCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.AddCategoryCompleted(this, new AddCategoryCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/UpdateCategory", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int UpdateCategory(int userId, int categoryId, string categoryName, string categorySku, int parentId, string shortDescription, string fullDescription) {
            object[] results = this.Invoke("UpdateCategory", new object[] {
                        userId,
                        categoryId,
                        categoryName,
                        categorySku,
                        parentId,
                        shortDescription,
                        fullDescription});
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginUpdateCategory(int userId, int categoryId, string categoryName, string categorySku, int parentId, string shortDescription, string fullDescription, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("UpdateCategory", new object[] {
                        userId,
                        categoryId,
                        categoryName,
                        categorySku,
                        parentId,
                        shortDescription,
                        fullDescription}, callback, asyncState);
        }
        
        /// <remarks/>
        public int EndUpdateCategory(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void UpdateCategoryAsync(int userId, int categoryId, string categoryName, string categorySku, int parentId, string shortDescription, string fullDescription) {
            this.UpdateCategoryAsync(userId, categoryId, categoryName, categorySku, parentId, shortDescription, fullDescription, null);
        }
        
        /// <remarks/>
        public void UpdateCategoryAsync(int userId, int categoryId, string categoryName, string categorySku, int parentId, string shortDescription, string fullDescription, object userState) {
            if ((this.UpdateCategoryOperationCompleted == null)) {
                this.UpdateCategoryOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateCategoryOperationCompleted);
            }
            this.InvokeAsync("UpdateCategory", new object[] {
                        userId,
                        categoryId,
                        categoryName,
                        categorySku,
                        parentId,
                        shortDescription,
                        fullDescription}, this.UpdateCategoryOperationCompleted, userState);
        }
        
        private void OnUpdateCategoryOperationCompleted(object arg) {
            if ((this.UpdateCategoryCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.UpdateCategoryCompleted(this, new UpdateCategoryCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/DeleteCategory", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int DeleteCategory(int userId, int categoryId) {
            object[] results = this.Invoke("DeleteCategory", new object[] {
                        userId,
                        categoryId});
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginDeleteCategory(int userId, int categoryId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("DeleteCategory", new object[] {
                        userId,
                        categoryId}, callback, asyncState);
        }
        
        /// <remarks/>
        public int EndDeleteCategory(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void DeleteCategoryAsync(int userId, int categoryId) {
            this.DeleteCategoryAsync(userId, categoryId, null);
        }
        
        /// <remarks/>
        public void DeleteCategoryAsync(int userId, int categoryId, object userState) {
            if ((this.DeleteCategoryOperationCompleted == null)) {
                this.DeleteCategoryOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteCategoryOperationCompleted);
            }
            this.InvokeAsync("DeleteCategory", new object[] {
                        userId,
                        categoryId}, this.DeleteCategoryOperationCompleted, userState);
        }
        
        private void OnDeleteCategoryOperationCompleted(object arg) {
            if ((this.DeleteCategoryCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.DeleteCategoryCompleted(this, new DeleteCategoryCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetCategory", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public Category GetCategory(int userId, int categoryId) {
            object[] results = this.Invoke("GetCategory", new object[] {
                        userId,
                        categoryId});
            return ((Category)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetCategory(int userId, int categoryId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetCategory", new object[] {
                        userId,
                        categoryId}, callback, asyncState);
        }
        
        /// <remarks/>
        public Category EndGetCategory(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((Category)(results[0]));
        }
        
        /// <remarks/>
        public void GetCategoryAsync(int userId, int categoryId) {
            this.GetCategoryAsync(userId, categoryId, null);
        }
        
        /// <remarks/>
        public void GetCategoryAsync(int userId, int categoryId, object userState) {
            if ((this.GetCategoryOperationCompleted == null)) {
                this.GetCategoryOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetCategoryOperationCompleted);
            }
            this.InvokeAsync("GetCategory", new object[] {
                        userId,
                        categoryId}, this.GetCategoryOperationCompleted, userState);
        }
        
        private void OnGetCategoryOperationCompleted(object arg) {
            if ((this.GetCategoryCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetCategoryCompleted(this, new GetCategoryCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetCategoriesPaged", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public Category[] GetCategoriesPaged(int userId, int parentId, int maximumRows, int startRowIndex) {
            object[] results = this.Invoke("GetCategoriesPaged", new object[] {
                        userId,
                        parentId,
                        maximumRows,
                        startRowIndex});
            return ((Category[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetCategoriesPaged(int userId, int parentId, int maximumRows, int startRowIndex, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetCategoriesPaged", new object[] {
                        userId,
                        parentId,
                        maximumRows,
                        startRowIndex}, callback, asyncState);
        }
        
        /// <remarks/>
        public Category[] EndGetCategoriesPaged(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((Category[])(results[0]));
        }
        
        /// <remarks/>
        public void GetCategoriesPagedAsync(int userId, int parentId, int maximumRows, int startRowIndex) {
            this.GetCategoriesPagedAsync(userId, parentId, maximumRows, startRowIndex, null);
        }
        
        /// <remarks/>
        public void GetCategoriesPagedAsync(int userId, int parentId, int maximumRows, int startRowIndex, object userState) {
            if ((this.GetCategoriesPagedOperationCompleted == null)) {
                this.GetCategoriesPagedOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetCategoriesPagedOperationCompleted);
            }
            this.InvokeAsync("GetCategoriesPaged", new object[] {
                        userId,
                        parentId,
                        maximumRows,
                        startRowIndex}, this.GetCategoriesPagedOperationCompleted, userState);
        }
        
        private void OnGetCategoriesPagedOperationCompleted(object arg) {
            if ((this.GetCategoriesPagedCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetCategoriesPagedCompleted(this, new GetCategoriesPagedCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        public new void CancelAsync(object userState) {
            base.CancelAsync(userState);
        }
    }
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetCategoriesCountCompletedEventHandler(object sender, GetCategoriesCountCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetCategoriesCountCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetCategoriesCountCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetWholeCategoriesSetCompletedEventHandler(object sender, GetWholeCategoriesSetCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetWholeCategoriesSetCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetWholeCategoriesSetCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public System.Data.DataSet Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((System.Data.DataSet)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void CheckCustomerContractExistsCompletedEventHandler(object sender, CheckCustomerContractExistsCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class CheckCustomerContractExistsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal CheckCustomerContractExistsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public bool Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((bool)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetCustomerContractCompletedEventHandler(object sender, GetCustomerContractCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetCustomerContractCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetCustomerContractCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public Contract Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((Contract)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void AddBillingCycleCompletedEventHandler(object sender, AddBillingCycleCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class AddBillingCycleCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal AddBillingCycleCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void UpdateBillingCycleCompletedEventHandler(object sender, UpdateBillingCycleCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class UpdateBillingCycleCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal UpdateBillingCycleCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void DeleteBillingCycleCompletedEventHandler(object sender, DeleteBillingCycleCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class DeleteBillingCycleCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal DeleteBillingCycleCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetBillingCycleCompletedEventHandler(object sender, GetBillingCycleCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetBillingCycleCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetBillingCycleCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public BillingCycle Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((BillingCycle)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetBillingCyclesCountCompletedEventHandler(object sender, GetBillingCyclesCountCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetBillingCyclesCountCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetBillingCyclesCountCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetBillingCyclesPagedCompletedEventHandler(object sender, GetBillingCyclesPagedCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetBillingCyclesPagedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetBillingCyclesPagedCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public BillingCycle[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((BillingCycle[])(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetBillingCyclesFreeCompletedEventHandler(object sender, GetBillingCyclesFreeCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetBillingCyclesFreeCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetBillingCyclesFreeCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public BillingCycle[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((BillingCycle[])(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void AddHostingPlanCompletedEventHandler(object sender, AddHostingPlanCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class AddHostingPlanCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal AddHostingPlanCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void AddTopLevelDomainCompletedEventHandler(object sender, AddTopLevelDomainCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class AddTopLevelDomainCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal AddTopLevelDomainCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void AddHostingAddonCompletedEventHandler(object sender, AddHostingAddonCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class AddHostingAddonCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal AddHostingAddonCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void UpdateHostingPlanCompletedEventHandler(object sender, UpdateHostingPlanCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class UpdateHostingPlanCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal UpdateHostingPlanCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void UpdateHostingAddonCompletedEventHandler(object sender, UpdateHostingAddonCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class UpdateHostingAddonCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal UpdateHostingAddonCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void UpdateTopLevelDomainCompletedEventHandler(object sender, UpdateTopLevelDomainCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class UpdateTopLevelDomainCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal UpdateTopLevelDomainCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetProductsCountByTypeCompletedEventHandler(object sender, GetProductsCountByTypeCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetProductsCountByTypeCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetProductsCountByTypeCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetProductsPagedByTypeCompletedEventHandler(object sender, GetProductsPagedByTypeCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetProductsPagedByTypeCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetProductsPagedByTypeCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public Product[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((Product[])(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetHostingPlansTakenCompletedEventHandler(object sender, GetHostingPlansTakenCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetHostingPlansTakenCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetHostingPlansTakenCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int[])(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetHostingAddonsTakenCompletedEventHandler(object sender, GetHostingAddonsTakenCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetHostingAddonsTakenCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetHostingAddonsTakenCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int[])(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetHostingPlanCompletedEventHandler(object sender, GetHostingPlanCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetHostingPlanCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetHostingPlanCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public HostingPlan Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((HostingPlan)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetHostingAddonCompletedEventHandler(object sender, GetHostingAddonCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetHostingAddonCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetHostingAddonCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public HostingAddon Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((HostingAddon)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetHostingPlanCyclesCompletedEventHandler(object sender, GetHostingPlanCyclesCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetHostingPlanCyclesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetHostingPlanCyclesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public HostingPlanCycle[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((HostingPlanCycle[])(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetHostingAddonCyclesCompletedEventHandler(object sender, GetHostingAddonCyclesCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetHostingAddonCyclesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetHostingAddonCyclesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public HostingPlanCycle[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((HostingPlanCycle[])(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetProductHighlightsCompletedEventHandler(object sender, GetProductHighlightsCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetProductHighlightsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetProductHighlightsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public string[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string[])(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetProductCategoriesCompletedEventHandler(object sender, GetProductCategoriesCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetProductCategoriesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetProductCategoriesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public Category[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((Category[])(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetProductCategoriesIdsCompletedEventHandler(object sender, GetProductCategoriesIdsCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetProductCategoriesIdsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetProductCategoriesIdsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int[])(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void DeleteProductCompletedEventHandler(object sender, DeleteProductCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class DeleteProductCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal DeleteProductCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetAddonProductsCompletedEventHandler(object sender, GetAddonProductsCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetAddonProductsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetAddonProductsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public Product[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((Product[])(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetAddonProductsIdsCompletedEventHandler(object sender, GetAddonProductsIdsCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetAddonProductsIdsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetAddonProductsIdsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int[])(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetProductsByTypeCompletedEventHandler(object sender, GetProductsByTypeCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetProductsByTypeCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetProductsByTypeCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public Product[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((Product[])(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetTopLevelDomainsPagedCompletedEventHandler(object sender, GetTopLevelDomainsPagedCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetTopLevelDomainsPagedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetTopLevelDomainsPagedCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public TopLevelDomain[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((TopLevelDomain[])(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetTopLevelDomainCompletedEventHandler(object sender, GetTopLevelDomainCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetTopLevelDomainCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetTopLevelDomainCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public TopLevelDomain Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((TopLevelDomain)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetTopLevelDomainCyclesCompletedEventHandler(object sender, GetTopLevelDomainCyclesCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetTopLevelDomainCyclesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetTopLevelDomainCyclesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public DomainNameCycle[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((DomainNameCycle[])(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetSupportedPluginsByGroupCompletedEventHandler(object sender, GetSupportedPluginsByGroupCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetSupportedPluginsByGroupCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetSupportedPluginsByGroupCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public SupportedPlugin[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((SupportedPlugin[])(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetPaymentMethodCompletedEventHandler(object sender, GetPaymentMethodCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetPaymentMethodCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetPaymentMethodCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public PaymentMethod Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((PaymentMethod)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void SetPaymentProfileCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetPaymentProfileCompletedEventHandler(object sender, GetPaymentProfileCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetPaymentProfileCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetPaymentProfileCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public CheckoutDetails Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((CheckoutDetails)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void DeletePaymentProfileCompletedEventHandler(object sender, DeletePaymentProfileCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class DeletePaymentProfileCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal DeletePaymentProfileCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void PaymentProfileExistsCompletedEventHandler(object sender, PaymentProfileExistsCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class PaymentProfileExistsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal PaymentProfileExistsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public bool Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((bool)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetPluginPropertiesCompletedEventHandler(object sender, GetPluginPropertiesCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetPluginPropertiesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetPluginPropertiesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public KeyValueBunch Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((KeyValueBunch)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void SetPluginPropertiesCompletedEventHandler(object sender, SetPluginPropertiesCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class SetPluginPropertiesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal SetPluginPropertiesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void SetPaymentMethodCompletedEventHandler(object sender, SetPaymentMethodCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class SetPaymentMethodCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal SetPaymentMethodCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void DeletePaymentMethodCompletedEventHandler(object sender, DeletePaymentMethodCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class DeletePaymentMethodCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal DeletePaymentMethodCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void AddTaxationCompletedEventHandler(object sender, AddTaxationCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class AddTaxationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal AddTaxationCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void UpdateTaxationCompletedEventHandler(object sender, UpdateTaxationCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class UpdateTaxationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal UpdateTaxationCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void DeleteTaxationCompletedEventHandler(object sender, DeleteTaxationCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class DeleteTaxationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal DeleteTaxationCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetTaxationCompletedEventHandler(object sender, GetTaxationCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetTaxationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetTaxationCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public Taxation Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((Taxation)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetTaxationsCountCompletedEventHandler(object sender, GetTaxationsCountCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetTaxationsCountCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetTaxationsCountCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetTaxationsPagedCompletedEventHandler(object sender, GetTaxationsPagedCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetTaxationsPagedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetTaxationsPagedCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public Taxation[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((Taxation[])(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetStoreSettingsCompletedEventHandler(object sender, GetStoreSettingsCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetStoreSettingsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetStoreSettingsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public StoreSettings Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((StoreSettings)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void SetStoreSettingsCompletedEventHandler(object sender, SetStoreSettingsCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class SetStoreSettingsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal SetStoreSettingsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void SetInvoiceNotificationCompletedEventHandler(object sender, SetInvoiceNotificationCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class SetInvoiceNotificationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal SetInvoiceNotificationCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public RoutineResult Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((RoutineResult)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void SetPaymentReceivedNotificationCompletedEventHandler(object sender, SetPaymentReceivedNotificationCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class SetPaymentReceivedNotificationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal SetPaymentReceivedNotificationCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public RoutineResult Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((RoutineResult)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void SetServiceActivatedNotificationCompletedEventHandler(object sender, SetServiceActivatedNotificationCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class SetServiceActivatedNotificationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal SetServiceActivatedNotificationCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public RoutineResult Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((RoutineResult)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void SetServiceCancelledNotificationCompletedEventHandler(object sender, SetServiceCancelledNotificationCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class SetServiceCancelledNotificationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal SetServiceCancelledNotificationCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public RoutineResult Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((RoutineResult)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void SetServiceSuspendedNotificationCompletedEventHandler(object sender, SetServiceSuspendedNotificationCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class SetServiceSuspendedNotificationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal SetServiceSuspendedNotificationCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public RoutineResult Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((RoutineResult)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void IsSupportedPluginActiveCompletedEventHandler(object sender, IsSupportedPluginActiveCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class IsSupportedPluginActiveCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal IsSupportedPluginActiveCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public bool Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((bool)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void IsInvoiceProcessedCompletedEventHandler(object sender, IsInvoiceProcessedCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class IsInvoiceProcessedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal IsInvoiceProcessedCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public bool Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((bool)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetCustomersPaymentsCountCompletedEventHandler(object sender, GetCustomersPaymentsCountCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetCustomersPaymentsCountCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetCustomersPaymentsCountCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetCustomersPaymentsPagedCompletedEventHandler(object sender, GetCustomersPaymentsPagedCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetCustomersPaymentsPagedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetCustomersPaymentsPagedCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public CustomerPayment[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((CustomerPayment[])(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void DeleteCustomerPaymentCompletedEventHandler(object sender, DeleteCustomerPaymentCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class DeleteCustomerPaymentCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal DeleteCustomerPaymentCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void ChangeCustomerPaymentStatusCompletedEventHandler(object sender, ChangeCustomerPaymentStatusCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class ChangeCustomerPaymentStatusCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal ChangeCustomerPaymentStatusCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetCustomersInvoicesCountCompletedEventHandler(object sender, GetCustomersInvoicesCountCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetCustomersInvoicesCountCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetCustomersInvoicesCountCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetCustomersInvoicesPagedCompletedEventHandler(object sender, GetCustomersInvoicesPagedCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetCustomersInvoicesPagedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetCustomersInvoicesPagedCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public Invoice[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((Invoice[])(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetCustomerInvoiceFormattedCompletedEventHandler(object sender, GetCustomerInvoiceFormattedCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetCustomerInvoiceFormattedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetCustomerInvoiceFormattedCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public string Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetCustomerInvoiceCompletedEventHandler(object sender, GetCustomerInvoiceCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetCustomerInvoiceCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetCustomerInvoiceCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public Invoice Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((Invoice)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void AddCustomerPaymentCompletedEventHandler(object sender, AddCustomerPaymentCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class AddCustomerPaymentCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal AddCustomerPaymentCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetCustomersServicesCountCompletedEventHandler(object sender, GetCustomersServicesCountCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetCustomersServicesCountCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetCustomersServicesCountCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetCustomersServicesPagedCompletedEventHandler(object sender, GetCustomersServicesPagedCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetCustomersServicesPagedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetCustomersServicesPagedCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public Service[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((Service[])(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetHostingPackageServiceCompletedEventHandler(object sender, GetHostingPackageServiceCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetHostingPackageServiceCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetHostingPackageServiceCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public HostingPackageSvc Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((HostingPackageSvc)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetHostingAddonServiceCompletedEventHandler(object sender, GetHostingAddonServiceCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetHostingAddonServiceCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetHostingAddonServiceCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public HostingAddonSvc Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((HostingAddonSvc)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetDomainNameServiceCompletedEventHandler(object sender, GetDomainNameServiceCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetDomainNameServiceCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetDomainNameServiceCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public DomainNameSvc Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((DomainNameSvc)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetRawCustomerServiceCompletedEventHandler(object sender, GetRawCustomerServiceCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetRawCustomerServiceCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetRawCustomerServiceCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public Service Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((Service)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetServiceHistoryCompletedEventHandler(object sender, GetServiceHistoryCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetServiceHistoryCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetServiceHistoryCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public ServiceHistoryRecord[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((ServiceHistoryRecord[])(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void ActivateServiceCompletedEventHandler(object sender, ActivateServiceCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class ActivateServiceCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal ActivateServiceCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public GenericSvcResult Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((GenericSvcResult)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void SuspendServiceCompletedEventHandler(object sender, SuspendServiceCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class SuspendServiceCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal SuspendServiceCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public GenericSvcResult Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((GenericSvcResult)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void CancelServiceCompletedEventHandler(object sender, CancelServiceCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class CancelServiceCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal CancelServiceCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public GenericSvcResult Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((GenericSvcResult)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void VoidCustomerInvoiceCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void ActivateInvoiceCompletedEventHandler(object sender, ActivateInvoiceCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class ActivateInvoiceCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal ActivateInvoiceCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public GenericSvcResult[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((GenericSvcResult[])(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void DeleteCustomerServiceCompletedEventHandler(object sender, DeleteCustomerServiceCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class DeleteCustomerServiceCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal DeleteCustomerServiceCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void AddCategoryCompletedEventHandler(object sender, AddCategoryCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class AddCategoryCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal AddCategoryCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void UpdateCategoryCompletedEventHandler(object sender, UpdateCategoryCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class UpdateCategoryCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal UpdateCategoryCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void DeleteCategoryCompletedEventHandler(object sender, DeleteCategoryCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class DeleteCategoryCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal DeleteCategoryCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetCategoryCompletedEventHandler(object sender, GetCategoryCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetCategoryCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetCategoryCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public Category Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((Category)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetCategoriesPagedCompletedEventHandler(object sender, GetCategoriesPagedCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetCategoriesPagedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetCategoriesPagedCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public Category[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((Category[])(this.results[0]));
            }
        }
    }
}
